Battery pack charge cell balancing

ABSTRACT

Systems and methods are described for managing charging and discharging of battery packs. In one or more aspects, a system and method are provided to minimize overcharging of battery cells of specific battery chemistries while still enabling fast charging cycles. In other aspects, a buck converter may be used to reduce a voltage of power used to charge the cells. In further aspects, a fast overcurrent protection circuit is described to address situations involving internal short circuits of a battery cell or battery pack. In yet further aspects, a bypass circuit is provided in series-connected battery packs to improve the charging of undercharged battery packs while also increasing the efficiency of the overall charging process. In other aspects, a circuit is provided that permits a controller to determine a configuration of battery packs. In yet further aspects, a system may determine a discharge current for a collection of battery packs based on each battery pack&#39;s state of health (SOH) and forward that determination to an external device.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of International Patent ApplicationSerial No. PCT/CN2022/076500 with an international filing date of Feb.16, 2022. This application is also a continuation-in-part application ofU.S. patent application Ser. No. 17/395,987, filed Aug. 6, 2021, whichis a continuation of U.S. patent application Ser. No. 17/183,422, filedFeb. 24, 2021, now U.S. Pat. No. 11,095,140, which is a continuation ofU.S. patent application Ser. No. 16/937,931, filed Jul. 24, 2020, nowU.S. Pat. No. 10,944,278, which is a continuation of InternationalPatent Application Serial No. PCT/CN2020/093886 with an internationalfiling date of Jun. 2, 2020; and U.S. patent application Ser. No.17/183,422, is also a continuation of U.S. patent application Ser. No.16/937,979, filed Jul. 24, 2020, now U.S. Pat. No. 10,944,279, which isa continuation of International Patent Application Serial No.PCT/CN2020/093886 with an international filing date of Jun. 2, 2020; andU.S. patent application Ser. No. 17/183,422, is also a continuation ofU.S. patent application Ser. No. 16/938,008, filed Jul. 24, 2020, nowU.S. Pat. No. 10,938,221, which is a continuation of InternationalPatent Application serial no. PCT/CN2020/093886 with an internationalfiling date of Jun. 2, 2020; and all of the aforementioned are hereinincorporated by reference in their entireties for all purposes.

TECHNICAL FIELD

One or more aspects relate to electrical systems and, more particularly,to protecting components in those electrical systems from inrushcurrents.

BACKGROUND

The charging of battery cells, in a single battery pack or acrossmultiple battery packs, can be difficult. In some situations, batterycells with specific battery chemistries are prone to reaching anover-voltage condition while other battery cells in the same array havenot yet reached a desired state of charge. Responding to an over-voltagecondition is often too late to prevent damage to the battery cells.Similarly, parallel arrangements of battery cells or battery packs cancreate dangerous situations when one of the cells or packs experiences ashort circuit. While that cell or pack may protect itself fromcatastrophic failure, other cells or packs may experience a cascadingovercurrent situation that may untimely wear and/or degrade the lifeexpectancy of the non-shorting cells or packs. Also, continuing tocharge series-connected battery packs may create issues by overchargingalready charged packs while trying to charge undercharged packs.Further, some operations for battery packs may be improved based onknowledge of how the battery packs are arranged in an environment.However, battery pack manufacturers are not always knowledgeable of allarrangements of their battery packs and cannot optimize specificoperations.

SUMMARY

One or more systems and methods are described to address these and othershortcomings. In one or more aspects, a system and method are providedto minimize overcharging of battery cells of specific batterychemistries while still enabling fast charging cycles. In one or moreaspects, a buck converter may be used to reduce a voltage of power usedto charge the cells. In other aspects, a fast overcurrent protectioncircuit is described to address situations involving internal shortcircuits of a battery cell or battery pack. In further aspects, a bypasscircuit is provided in series-connected battery packs to improve thecharging of undercharged battery packs while also increasing theefficiency of the overall charging process. In yet other aspects, acircuit is provided that permits a controller to determine aconfiguration of battery packs. In yet further aspects, a system maydetermine a discharge current for a collection of battery packs based oneach battery pack's state of health (SOH) and forward that determinationto an external device.

These features, along with many others, are discussed in greater detailbelow.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing summary, as well as the following detailed description ofexemplary embodiments, is better understood when read in conjunctionwith the accompanying drawings, which are included by way of example,and not by way of limitation with regard to the claimed invention.

FIG. 1 shows an end device electrically powered by a plurality ofbattery packs in accordance with an embodiment.

FIG. 2A shows a battery pack with an internal battery management system(BMS) in accordance with an embodiment. FIG. 2B shows a battery packwith an internal battery management system (BMS) in accordance with anembodiment.

FIG. 3 shows a flowchart for an overall process of electrically poweringan end device by a plurality of battery packs in accordance with anembodiment.

FIG. 4 shows an updating of a configuration list of a plurality ofbattery packs in accordance with an embodiment.

FIG. 5 shows a flowchart for configuring a plurality of battery packs inaccordance with an embodiment.

FIG. 6A shows a generic message flow scenario for configuring aplurality of battery packs in accordance with an embodiment. FIG. 6Bshows a message flow scenario over a controller area network (CAN) busfor configuring a plurality of battery packs in accordance with anembodiment. FIG. 6C shows another message flow scenario over acontroller area network (CAN) bus for configuring a plurality of batterypacks in accordance with an embodiment. FIG. 6D shows another messageflow scenario over a controller area network (CAN) bus for configuring aplurality of battery packs in accordance with an embodiment.

FIG. 7A shows a flowchart for determining a balancing type for aplurality of battery packs in accordance with an embodiment. FIG. 7Bshows a flowchart for selecting one of three balancing types for aplurality of battery packs in accordance with an embodiment. FIG. 7Cshows a flowchart for determining a balancing type for a plurality ofbattery packs in accordance with an embodiment.

FIG. 8 shows a message flow scenario for determining a balancing typefor plurality of battery packs in accordance with an embodiment.

FIG. 9 shows a flowchart for converter balancing with a plurality ofbattery packs in accordance with an embodiment.

FIG. 10 shows a message flow scenario for converter balancing with aplurality of battery packs in accordance with an embodiment.

FIG. 11 shows a flowchart for direct balancing with a plurality ofbattery packs in accordance with an embodiment.

FIG. 12 shows a message flow scenario for direct balancing with aplurality of battery packs in accordance with an embodiment.

FIG. 13 shows a flowchart for staggered balancing with a plurality ofbattery packs in accordance with an embodiment.

FIGS. 14-15 show a message flow scenario for staggered balancing with aplurality of battery packs in accordance with an embodiment.

FIG. 16 shows an example of charging a plurality of battery packs inaccordance with an embodiment.

FIG. 17 shows a flowchart for charging a plurality of battery packs inaccordance with an embodiment.

FIG. 18A shows a message flow scenario for charging a plurality ofbattery packs in accordance with an embodiment. FIG. 18B shows a messageflow scenario for charging a plurality of battery packs in accordancewith an embodiment. FIG. 18C shows a flowchart of a method forintelligently charging a plurality of battery packs in accordance withan embodiment.

FIG. 19A shows an example of a plurality of battery packs discharging inorder to electrically power an end device in accordance with anembodiment. FIG. 19B shows an example of a plurality of battery packsdischarging in order to electrically power an end device in accordancewith an embodiment.

FIG. 20A shows a flowchart for discharging a plurality of battery packsin accordance with an embodiment. FIG. 20B shows a flowchart fordischarging a plurality of battery packs in accordance with anembodiment.

FIG. 21 shows a message flow scenario for discharging a plurality ofbattery packs in accordance with an embodiment.

FIG. 22 shows a flowchart for limp home mode operation in accordancewith an embodiment.

FIG. 23A shows a message flow scenario for limp home mode operation inaccordance with an embodiment. FIG. 23B shows a message flow scenariofor limp home mode operation in accordance with an embodiment.

FIG. 24 shows an example of battery states of charge while charging withbatteries of certain chemistries.

FIGS. 25A and 25B show examples of implementations of a buck converterin a battery pack.

FIG. 26 shows a battery pack having a buck converter with multiplevoltage detectors.

FIG. 27 shows a battery pack having a buck converter with a singlevoltage detectors.

FIG. 28 shows another example of battery states of charge while chargingwith batteries of certain chemistries.

FIGS. 29A, 29B, 29C, and 29D show flow charts for determining when touse a buck charger.

FIG. 30 shows a first example of an over-current protection system foruse with batteries.

FIG. 31 shows a second example of an over-current protection system foruse with batteries.

FIG. 32A shows a third example of an over-current protection system foruse with batteries. FIG. 32B shows a fourth example of an over-currentprotection system for use with batteries.

FIG. 33 shows a first example of balancing battery packs in series.

FIG. 34A shows a second example of balancing battery packs in series.FIG. 34B shows an alternative to the second example of balancing batterypacks in series.

FIG. 35 shows a bypass circuit for battery packs in series.

FIG. 36 shows a first example of detecting an arrangement of batteries.

FIGS. 37A, 37B, and 37C show additional examples of detecting anarrangement of batteries.

FIG. 38 shows an example of a battery system comprising multiple batterypacks.

FIG. 39 shows a flow chart of a first example of monitoring andresponding to changes in states of health of battery packs.

FIG. 40 shows a flow chart of a second example of monitoring andresponding to changes in states of health of battery packs.

FIG. 41 shows a flow chart of a third example of monitoring andresponding to changes in states of heath of battery packs.

The figures are further described in the following section.

DETAILED DESCRIPTION

In the following description, reference is made to the accompanyingdrawings, which form a part hereof, and in which are shown variousexamples of features of the disclosure and/or of how the disclosure maybe practiced. It is to be understood that other features may be utilizedand structural and functional modifications may be made withoutdeparting from the scope of the present disclosure. The disclosure maybe practiced or carried out in various ways. In addition, it is to beunderstood that the phraseology and terminology used herein are for thepurpose of description and should not be regarded as limiting. Rather,the phrases and terms used herein are to be given their broadestinterpretation and meaning. The use of “including” and “comprising” andvariations thereof is meant to encompass the items listed thereafter andequivalents thereof as well as additional items and equivalents thereof.

Any sequence of computer-implementable instructions described in thisdisclosure may be considered to be an “algorithm” as those instructionsare intended to solve one or more classes of problems or to perform oneor more computations. While various directional arrows are shown in thefigures of this disclosure, it the directional arrows are not intendedto be limiting to the extent that bi-directional communications areexcluded. Rather, the directional arrows are to show a general flow ofsteps and not the unidirectional movement of information, signals,and/or power.

One or more aspects of the disclosure relate to providing multiplecharging pathways for fast charging of batteries having batterychemistries that discouraged use of fast chargers for fear of onebattery cell reaching an overvoltage condition before the incomingvoltage could be reduced. Additional aspects relate to providing fastdisconnection of power supplies to prevent overcurrent situations.Further aspects relate to providing efficient bypass operations incharging of series-arranged battery packs. Yet further aspects relate todetermining a configuration of battery packs without prior knowledge ofhow the packs are to be arranged. In yet further aspects, a system maydetermine a discharge current for a collection of battery packs based oneach battery pack's state of health (SOH) and forward that determinationto an external device.

In general, a battery system may comprise a plurality of battery packsthat may have the same or similar electrical and electronic componentsand/or chemistries. Each battery pack may support battery cells (oftenLi-ion). Battery packs need not require a specific configuration beforethe battery pack is installed in the battery system. Rather, the batterypack may assume a role of either a master (e.g., a primary) battery packor a slave (e.g., a secondary) battery pack after the battery pack isinserted into the system and commences activity on the communicationchannel without user intervention.

With another aspect, the battery system need not utilize an externalbattery management system. Rather, each battery pack may include aninternal battery management system that can manage a pack's batterycells and may coordinate via messaging with the other battery packs inthe battery system via a communication channel.

With another aspect, a master battery pack may gather battery statusinformation from one or more slave battery packs by messaging over acommunication channel. Based on this status information, the masterbattery pack can appropriately initiate the enabling/disabling of thecharging or discharging of battery cells located at the slave batterypacks.

With another aspect, a configuration list may be sent by a masterbattery pack to slave battery packs over a communication channel (forexample, serial communication channel such as a controller area network(CAN) bus), where the configuration list may include entries for each ofthe master and slave battery packs. The entry at the top position canserve as the master battery pack while the other battery packs can serveas slave battery packs. When a battery pack is added or removed, theconfiguration list can be revised to reflect the change.

With another aspect, battery packs in a battery system may becharge-balanced to mitigate and/or prevent in-rush electrical currentthat may occur for one or more of a plurality of battery packs in thebattery system when there is significant variation of state of charge(SoC) among the battery packs. For example, a large SoC variation mayoccur when a new battery pack is installed in a battery system, such aswhen a SoC of the new battery pack is much different (e.g., discharged,fully charged) when compared to the existing battery packs in thebattery system. In-rush electrical current can be particularlyundesirable with Li-ion batteries since its life may be substantiallyreduced.

With another aspect, different balancing technique of battery packs aresupported in a battery system. Based on the SoC characteristics of thebattery packs, one of a plurality of balancing techniques may beselected. Balancing techniques may include, for example, a “smartconverter balancing,” a “start direct balancing,” and/or a “startstaggered balancing.”

With another aspect, a battery system may support a “limp home mode”when a battery pack in a battery system experiences a catastrophicfailure, for example, when its battery cells are characterized by a verylow voltage output. An internal battery management system may diagnosethe failure and may mitigate the failure by configuring an unusedbattery pack (if available) in the battery system or by initiating apartial shutdown of the battery system, enabling operation of theequipment to “limp home” under at least partial power.

With another aspect, a battery system supports “smart discharge” inorder to power equipment (end device). Battery packs with varying SoC'smay be connected to an end device to provide electrical power to thedevice. However, battery packs that have a large SoC variation cannot beimmediately connected together to power the end device and maynecessitate charge balancing to be performed. Battery packs are thenselectively enabled from a plurality of battery packs in the batterysystem so that the battery packs can properly discharge.

With another aspect, a battery system supports “smart charge” in orderto restore charge to its battery cells. A battery system having batterypacks with varying SoC's may be connected to a charger in order torestore the SoC's of each battery pack and to reduce the SoC variabilityamong the battery packs. If the battery packs have a large SoCvariation, the battery packs cannot be immediately connected to thecharger at the same time. Measures are thus supported to circumvent thissituation by enabling charging of selected battery packs at theappropriate time based on dynamic SoC characteristics.

According to an aspect of the embodiments, a battery system with alarge-format battery (e.g., a Li-ion battery) powers attached equipment(an end device) by discharging battery cells distributed among aplurality of battery packs. The discharging of the battery cells iscontrolled in an efficient manner while preserving the expected life ofthe Li-ion battery cells.

According to another aspect of the embodiments, a battery system maysupport different advanced technology batteries of different chemistriesand/or structures including, but not limited to, Li-ion batteries andsolid-state batteries.

Each battery pack internally supports a battery management system (BMS),thus circumventing the need of an external battery management incontrast to traditional approaches. Moreover, each of the battery packsmay have identical electrical and electronics components, thussupporting an architecture that easily scales to higher power/energyoutput as needed by an end device. Battery packs may be individuallyadded or removed, where one of the battery packs serves as a masterbattery pack and the remaining battery packs serve as slave batterypacks. Moreover, configuration of the battery packs may be automaticallyperformed without user interaction. When the master battery pack isremoved, one of the slave battery packs is automatically reconfigured tobecome the master battery pack. Charging and discharging of the batterycells is coordinated by the master (e.g., primary) battery pack with theslave (e.g., secondary) battery packs over a communication channel suchas a controller area controller (CAN) bus.

In addition, the battery system may be efficiently charged in order torestore charge to the battery cells while preserving the life expectancyof the battery cells.

Rechargeable medium-to-large format battery packs with batterymanagement systems are providing power for small, portable devices andare also extending to larger mobile and stationary uses. Moreover,transportation applications spanning smaller uses such as scooters tolarger ones such as full-size autos are contemplated with rechargeablebatteries. Industrial applications are also contemplated asbattery-based designs are replacing small internal combustion enginesfor lawn mowers and yard equipment in both commercial and consumerproducts. Enabling electrification has several advantages, including butnot limited to, elimination of polluting emissions, reduced noise, andlower maintenance needs. Furthermore, self-contained backup powersystems for residential and commercial sites are benefiting frombattery-based designs which eliminate the issues associated with on-sitehydrocarbon-based fuel storage.

FIG. 1 shows end device 101 electrically powered by a plurality ofbattery packs 100 (battery system) in accordance with an embodiment.Each battery pack 102, 103, and 104 includes its own internal batterymanagement system (BMS) 112, 113, and 114, respectively. Battery packs102, 103, and 104 are electrically connected to a direct current (DC)power bus 151 (comprising positive and negative connections) so that thevoltage presented to end device 101 is essentially the same as thevoltage provided by each battery pack 102, 103, and 104 while theelectrical current supplied to end device 101 is the sum of individualelectrical currents provided by each battery pack. Battery packs 100 maybe housed within end device 101, mounted to end device 101, orexternally situated with respect to end device 101.

End device 101 may assume different types of devices including, but notlimited to, power tools, lawn mowers, garden tools, appliances, andvehicles including forklifts, cars, trucks, and so forth.

Battery management systems 112, 113, and 114 communicate with all of thebattery packs as well as end device 101 and/or charger 1601 (as shown inFIG. 16) over communication channel 152. For example, communicationchannel 152 may comprise a serial communication channel (e.g., acontroller area network (CAN) bus) or a parallel communication bus.However, embodiments may support other types of communication channelssuch as Ethernet, Industrial Ethernet, I²C, Microwire, or Bluetooth LowEnergy (BLE). In some cases, the communication channel may supportsynchronous communication (e.g., CAN) or asynchronous communication(e.g., RS-232, RS-422, RS-485, etc.)

The CAN and Ethernet protocols support the lower two layers of the OSImodel while the BLE protocol spans the lower layers as well as thehigher layers including the application layer. Consequently, embodimentsutilizing protocols such as CAN and Ethernet must support the equivalenthigher layers by software applications built on top of the two lowerlayers.

Embodiments may support different messaging protocols. For example, aprotocol may support node to node communication by supporting both asource address and a destination address. The destination address mayspecify a particular node address or may be a global address so that amessage may be broadcast to more than one node. In some cases, aprotocol (such as the CAN protocol, the Modbus protocol, etc.) maysupport only a single source address (e.g., a master address) so thatall nodes may process a message broadcast over a communication channel.

Battery packs 102, 103, and 104 may each connect to communicationchannel 152 in a parallel fashion. However, embodiments may supportdifferent arrangements such as pack-to-pack communication on separatebusses or a daisy chain connection through each battery pack.

Battery packs 102, 103, and 104 may have similar or identical electricaland electronic components. After being inserted into a battery system,one of the battery packs 102, 103, or 104 may be configured as a masterbattery pack or a slave battery pack. Moreover, if a battery packinitially serves as a slave battery pack, it may subsequently serve as anew master battery pack if the current master battery pack is removed.

FIG. 2A shows battery pack 200 with an internal battery managementsystem (BMS) in accordance with an embodiment. The battery managementsystem may be implemented by processor 201, which may comprise one ormore microprocessors, controllers, microcontrollers, computing devices,and/or the like, executing computer-executable instructions stored atmemory device 202.

As will be discussed, battery pack 200 may be configured as either amaster battery pack or a slave battery pack without any change to theelectrical or electronic components.

The power circuitry (including battery cells 203) of battery pack 200interacts with power bus 151 through power bus interface circuit 206when battery pack 200 is discharging, charging, and/or being balancedwith respect to the other battery packs as will be discussed.

Battery pack 200 also interacts with communication channel 152 viacommunication channel interface circuit 205. For example, battery pack200 may support messaging with other configured battery packs, with theend device being powered by the battery packs, or with a chargercharging battery cells 203. Exemplary message flows are shown in FIGS.6A-6B, 8, 10, 12, 14-15, 18A-18B, 21, and 23A-23B as will be discussedin further detail.

Battery pack 200 supports core battery monitoring and/or managementfunctionality via core battery functions circuit 204. For example, corebattery functions may include battery cell status, battery cellbalancing, short circuit protection, high temperature cut-off,over-current cut-off, and over-charge protection.

Referring to FIG. 2A, battery cells 203 may include a plurality ofbattery cells that are connected in series to obtain a desired voltagelevel. For example, with Li-ion technology, each battery cell may have anominal voltage of approximately 3.6 volts. With four battery cellsconnected in series, the total nominal voltage provided by battery pack200 is approximately 14.4 volts. When battery cells 203 comprises aplurality of battery cells, core battery functions circuit 204 mayinternally balance the charge among the different battery cells. Inaddition, battery pack 200 may be charge balanced with respect to theother battery packs in a battery system. The battery packs are oftenconfigured in a parallel fashion so that the resultant electricalcurrent offered to an end device is the sum of electrical currents ofthe battery packs at an approximate voltage level of an individualbattery pack.

Status information may include the state of charge (SoC) information,state of health (SoH) information, temperature information, chargingtime information, discharge time information, and/or capacityinformation of the battery cells and/or of the battery pack.

As one with skill in the art would appreciate, the SoC is understood tobe the level of charge of an electric battery relative to its capacity.The units of SoC are typically percentage points (0%=empty; 100%=full).

The SoH typically does not correspond to a particular physical qualitysince generally there is no consensus in the industry on how SoH shouldbe determined. However, the SoH is indicative of internal resistance,battery storage capacity, battery output voltage, number ofcharge-discharge cycles, temperature of the battery cells duringprevious uses, total energy charged or discharged, and/or age of thebattery cells to derive a value of the SoH. Knowing the SoH of thebattery cells of battery pack 200 and the SoH threshold of a given enddevice (application) may provide a determination whether the presentbattery conditions are suitable for an application and an estimate aboutthe battery pack's useful lifetime for that application.

When performing processes associated with battery management, batterypack 200 may receive or send values of at least the SoC and/or SoHfrom/to other battery packs as will discussed in further detail.

Power bus interface circuit 206 may comprise a switch circuit such as asemiconductor array 210 (for example, a metal oxide semiconductor fieldeffect transistor (MOSFET) array or other power semiconductor switchdevice, such as an insulated gate bipolar transistor (IGBT) array, athyristor array, etc.) that allows electrical current flow from batterypack 200 when battery pack 200 is discharging and semiconductor array211 that allows electrical current flow to battery pack 200 when batterypack 200 is charging. Arrays 210, 211 are appropriately enabled byprocessor 201 in response to messaging from the master battery packcontroller. (In a situation when battery pack is the master batterypack, messaging is internal to battery pack 200 rather via communicationchannel 152.) The power MOSFET arrays (e.g., N-Channel MOSFETs) may beused as switches to control power flow to and from the battery cells.The gates of the MOSFET arrays may be controlled by signals generated bya microcontroller and/or a battery management IC.

Power bus interface circuit 206 may be configured to prevent batterypack 200 from being charged or discharged through power bus 206 based onthe status of battery cells 203 (for example, SoC, SoH, and/or voltage).Typically, arrays 210 and 211 are disabled when a battery pack isinserted into a battery system so that the battery pack does not chargeor discharge until instructed and/or controlled by the master batterypack.

Battery pack 200 interacts with power bus 151 via electrical switch 208(which may comprise one or more semiconductor devices). As shown in FIG.2A, direct exposure to power bus 151 bypasses converter 207. However, ifbattery cells are charged when the battery cells have a small SoC, thebattery cells may incur an electrical current in-rush, often resultingin damage or degradation. Consequently, when the battery managementsystem detects such a condition, electrical switch 208 may be configuredso that charging of the battery pack 200 is controlled to minimizeinrush current from the power bus 151 via the converter 207.

Converter 207 may assume different forms capable of controlling powertransfer between the power bus and the cells of the battery pack such asby providing a stepped-down output voltage with respect to the inputvoltage (e.g., a buck converter, a auk converter, a buck-boostconverter, a single-ended primary-inductor converter (SEPIC) converter,etc.) to protect battery cells 203 from an electrical current in-rushand enable battery cells 203 to slowly charge (for example,corresponding to converter balancing flowchart 713 as shown in FIG. 9).However, when converter 207 is bypassed, battery cells 203 may charge ata quicker rate (for example, corresponding to direct balancing flowchart714 as shown in FIG. 11).

Processor 201 may support battery management processes (for example,processes 500, 700, 713, 714, 715, 1700, 2000, and 2200 as shown inFIGS. 5, 7A, 9, 11, 13, 17, 19, and 22, respectively) discussed herein.Processor 201 may control the overall operation of battery pack 200 andits associated components. Processor 201 may access and execute computerreadable instructions from memory device 202, which may assume a varietyof computer readable media. For example, computer readable media may beany available media that may be accessed by processor 201 and mayinclude both volatile and nonvolatile media and removable andnon-removable media. By way of example, and not limitation, computerreadable media may comprise a combination of computer storage media andcommunication media.

Computer storage media may include volatile and nonvolatile andremovable and non-removable media implemented in any method ortechnology for storage of information such as computer readableinstructions, data structures, program modules or other data. Computerstorage media include, but is not limited to, random access memory(RAM), read only memory (ROM), electronically erasable programmable readonly memory (EEPROM), flash memory or other memory technology, CD-ROM,digital versatile disks (DVD) or other optical disk storage, magneticcassettes, magnetic tape, magnetic disk storage or other magneticstorage devices, or any other medium that can be used to store thedesired information and that can be accessed by the computing device.

Communication media may include computer readable instructions, datastructures, program modules or other data in a modulated data signalsuch as a carrier wave or other transport mechanism and includes anyinformation delivery media. Modulated data signal can be a signal thathas one or more of its characteristics set or changed in such a manneras to encode information in the signal. By way of example, and notlimitation, communication media may include wired media, such as a wirednetwork or direct-wired connection, and wireless media such as acoustic,RF, infrared and other wireless media.

While processor 201 and communication channel interface circuit 205 maybe powered by battery cells 203, embodiments may have a separate powersource for processor 201 and interface circuit 205. Consequently,battery pack 200 may continue to interact with the other battery packsover the communication channel regardless of the status of battery cells203.

FIG. 2B shows a variation of battery pack 200 shown in FIG. 2A. Batterycells 203 interact with the power bus through power bus connector 214,switch 217, converter 218, and connector 219. Switch 217 may include twosets (arrays) of semiconductor devices (for example, MOSFET's,insulated-gate bipolar transistors IGBTs), thyristors, and so forth) forallowing electrical current flow in either direction (into the batterypack for charging and Out of the battery pack for discharging). Botharrays may be disabled to isolate the battery pack from the power bus.Typically, both arrays are disabled when a battery pack is inserted intoa battery system. In addition, enabled converter 218 may be used toreduce an input voltage level to control charging of the battery cellsto prevent an electrical current in-rush that may occur in somesituations as will be discussed.

Controller 213 executes computer-executable instructions to performprocesses discussed herein. For example, controller 213 obtains statusinformation (for example, the SoC value) from battery cells 203 viabattery monitor 219, provides battery pack status information via statusdisplay 215, and interacts with a communication channel (for example, aCAN bus) via communication bus interface 216.

In addition, a heater control circuit 212 may be used to ensure that thetemperature of battery cells 203 does not drop below a minimum value sothat battery cells 203 can properly operate as expected.

FIG. 3 shows flowchart 300 for an overall process of electricallypowering an end device (for example, end device 101 as shown in FIG. 1)by a plurality of battery packs (for example, battery packs 100) inaccordance with an embodiment.

At block 301, end device 101 is activated. For example, a user may closea battery compartment of end device 101, turn a key, and/or flip aswitch to generate an interlock signal.

At block 302, the battery management system of the master battery packdetermines whether to balance the battery packs when the batterycompartment has more than two battery packs. If so, the difference ofcharge of the battery packs may be reduced by one or more battery packsdischarging to charge one or more of the other battery packs at block303 as will be discussed in further detail.

After balancing (if needed), the end device is powered by dischargingone or more of the battery packs at block 304. For example, based on thepower requirements of the end device and the SoC values of the batterypacks, the battery management system of the master battery pack mayenable the appropriate battery packs.

If a catastrophic failure is detected at block 305 for one of theenabled battery packs while powering the end device, limp home modeoperation at block 306 may be initiated in order to continue poweringthe end device as will be discussed in further detail.

When the user completes using the end device at block 307, block 308determines whether charging is needed. If so, a charger may be connectedto the battery system to restore the battery cells, where charging maybe initiated at block 309.

While not explicitly shown, balancing of the battery packs may beperformed before charging the battery packs at block 308 when the SoCvalues of the battery packs are sufficiently different.

With the embodiments, all of the plurality of battery packs may have thesame electrical and electronic components. No configuration is typicallyneeded to a battery pack when the battery pack is installed in thebattery system. Rather, the battery pack assumes the role of either amaster battery pack or a slave battery pack based on processes discussedherein after the battery pack is inserted into the system and thebattery pack commences activity on the communication channel. As will bediscussed in further detail, a configuration list may be conveyed overthe communication channel, where the configuration includes entries foreach of the master and slave battery packs.

The processes discussed herein are shown from the perspective of themaster battery pack and are typically executed by the master batterypack in the battery system. The other installed battery packs in thebattery system serve as slave battery packs. However, the slave batterypacks interact with the master battery pack over the communicationchannel. For example, a slave battery pack provides its battery cellstatus information and activates/deactivates power switches to interactwith the power bus (for example, allowing electrical current (charge) toflow into or from the battery pack) responsive to messaging from themaster battery pack. Consequently, while not explicitly shown, there arecorresponding processes executed by each of the slave battery packs.

FIG. 4 shows an updating of configuration list 401 a, 401 b, 401 c, 401d of a plurality of battery packs as different battery packs areinserted into and removed from the battery system. Each battery pack isassigned an identification (ID) in accordance with a standardizedprocess, such as the SAE J1939 Address Claim Procedure and/or the like.For example, configuration list 401 a contains four entries: pack 1(which is configured as the master battery pack) and three slave batterypacks (packs 2-4).

As will be discussed in greater detail, the master battery pack gatherstatus information about the other battery packs (the slave batterypacks) and consequently instructs the slave battery packs, as well asitself, to discharge or charge in response to the operation situation.

With the embodiment shown in FIG. 4, the first (top) member ofconfiguration list 401 a, 401 b, 401 c, 401 d is configured as themaster battery pack. When a battery pack is added to the battery system,an entry is created at the bottom of the configuration list for thatbattery pack. Consequently, the oldest member of configuration list 401a, 401 b, 401 c, 401 d is configured as the master battery pack.

Selecting the oldest (top) member of configuration list 401 c may beadvantageous to traditional approaches. For example, the number ofchanges of the master battery packs may be reduced with respect todetermining the master battery pack based on the ID value. With thelatter approach, a second change would occur from configuration list 401d, where pack 5 would become the master battery pack.

In the installation scenario shown in FIG. 4, pack 1 (which serves asthe master battery pack) is removed as shown in configuration list 401b. Consequently, pack 2 (the oldest slave battery pack) becomes the newmaster battery pack as shown in configuration list 401 c. In order tocomplete the transition, pack 2 may request pack information from theother battery packs to be able to properly instruct the other batterypacks.

Subsequently, pack 5 is inserted into the battery system resulting in anew entry being added to configuration list 401 d, where ID 243 is thesame ID for previously removed pack 1. With embodiment shown in FIG. 4,pack 5 may be old master pack that is reinserted or a new battery packthat is inserted into the battery system.

With some embodiments, when a battery pack is removed from a batterysystem, battery pack information may be lost. When the battery pack isreinserted, the reinserted battery pack may obtain battery informationfrom the configured battery packs. However, some embodiments may supportmemory persistence (e.g., flash memory) so that battery pack informationis retained at the battery pack even when the battery pack is removedand reinserted.

FIG. 5 shows flowchart 500 for configuring a plurality of battery packsin accordance with an embodiment. At block 501, a battery pack is addedto the battery system. If no other battery packs are connected to thecommunication channel, as determined at block 502, an entry is added tothe top of the configuration list, and the battery pack becomes themaster battery pack at block 504. Otherwise, the added battery pack isadded to the bottom of the configuration list and becomes a slavebattery pack at block 503.

At block 504, a battery pack is removed from the battery system. If thebattery pack is the first member of the configuration list, asdetermined at block 505, the entry is removed at block 506 and thebattery pack corresponding to the next entry is designated as the masterbattery pack at block 507. Otherwise, the entry for the removed batterypack is deleted at block 508.

FIG. 6A shows a generic message flow scenario for configuring aplurality of battery packs in accordance with flowchart as shown in FIG.5. The generic messages represent messages supported by differentcommunication channels, for example via a controller area network (CAN)bus, Ethernet, Industrial Ethernet, MODBUS, or Bluetooth Low Energy(BLE) and/or the like.

The message flow in FIG. 6A is based on a centralized approach, in whichthe master battery pack maintains the configuration list andrepetitively sends it (for example, periodically) to the other batterypacks over a communication channel. However, embodiments (for example,as shown in FIG. 6D) may support a distributed approach, in which eachbattery pack locally maintains its own configuration list andrepetitively broadcasts it over the communication channel. Since abattery pack receives all broadcasts from the other battery packs, thebattery pack is able to modify its own configuration list to beconsistent with the configuration lists broadcast by the other batterypacks.

When pack 601 (pack 1) becomes the master battery pack at event 631,pack 601 sends periodic update messages 661 a, 661 b, 661 c to packs602, 603, and 604, respectively. If the message protocol supports asingle broadcast message (for example, with a global destinationaddress) that is received and processed by all battery packs connectedto the communication channel, then only one message is sent by pack 601.Otherwise, pack 601 sends separate messages to packs 602, 603, and 604(which are configured as slave battery packs).

With some embodiments, messages 661 a, 661 b, 661 c may be sentrepetitively but not periodically.

Periodic update message 661 a, 661 b, 661 c may contain configurationinformation (for example configuration list 401 a, 401 b, 401 c, 401 das shown in FIG. 4). With some embodiments, pack 601 sends broadcastmessages periodically. However, if pack 601 were removed (for example,corresponding to event 632), periodic transmission of the updatemessages would be disrupted.

When the disruption is detected by the oldest slave battery pack (pack602) at event 633, pack 602 assumes the role of the master battery pack.Consequently, pack 602 removes the top entry of the configuration list(corresponding to pack 601) and periodically sends the revisedconfiguration list via update message 662 a, 662 b.

When pack 605 (pack 5) is added at event 634, pack 605 sends joinrequest 663 in accordance with the SAE J1939 address claim procedure.Consequently, pack 605 is added by pack 602 (currently the masterbattery pack) at event 635, and pack 602 periodically sends updatemessages 664 a, 664 b, 664 c and 665 a, 665 b, 665 c.

FIG. 6B shows a message flow scenario over a CAN bus for configuring aplurality of battery packs in accordance with an embodiment.

The CAN communications protocol (ISO-11898: 2003) describes howinformation is passed between devices on a network and conforms to theOpen Systems Interconnection (OSI) model that is defined in terms oflayers. Actual communication between devices connected by the physicalmedium is defined by the physical layer of the model. The ISO 11898architecture defines the lowest two layers of the seven-layer OSI/ISOmodel referred as the data-link layer and physical layer.

The CAN communication protocol supports both a standard version (11-bitidentifier field) and an extended version (29-bit identifier field).However, embodiments typically use the standard version because thesupported identifier space is typically more than enough.

The CAN bus is often referred to as a broadcast type of bus, where eachmessage contains a source address (for example, a device ID) but not adestination address. Consequently, all battery packs (corresponding tonodes) can “hear” all transmissions. A battery pack may selectivelyignore a message or may process the message by providing local filteringso that each battery pack may respond to pertinent messages.

Embodiments may use the data frame message specified in the CANprotocol. This message type carries a 0-8 byte payload, where the datafield is interpreted at a higher protocol layer (typically by a softwareapplication executing at the battery packs). For example, the data fieldmay convey SoC and/or SoH information when a slave battery pack sendsstatus information back to the master battery pack.

In order to assign an identification value (address) to a battery pack,end device, or charger, embodiments may utilize an industry standard,such as the SAE J1939 address claim procedure. The SAE J1939 protocol isa higher protocol layer built on top the CAN data-link and physicallayers.

Referring to FIG. 6B, when pack 601 (pack 1) becomes the master batterypack at event 636, pack 601 sends periodic data frame message 671 topacks 602, 603, and 604, respectively. (Because the CAN protocolsupports only a source address, all battery packs may receive andprocess a single broadcast message sent via the CAN bus.) Data framemessage 671 corresponds to periodic update message 661 a, 661 b, 661 cshown in FIG. 6A. Data frame message 671 contains at least theconfiguration list in the payload.

When pack 601 is removed (for example, corresponding to event 637),periodic transmission of the periodic data frame messages is disrupted.

When the disruption is detected by the oldest slave battery pack (pack602) at event 638, pack 602 assumes the role of the master battery pack.Consequently, pack 602 removes the top entry of the configuration list(corresponding to pack 601) and periodically sends the revisedconfiguration list via data frame message 672.

When pack 605 (pack 5) is added at event 639, pack 605 initiates theaddress claimed procedure 673 claiming its identification (ID) value.When successfully completed, an entry with the identification of pack605 is added to the bottom of the configuration list by master batterypack 602 at event 640.

Subsequently, pack 602 (now the master battery pack) periodically sendsbroadcast data frame message 674.

FIG. 6C shows a variation of the message flow scenario shown in FIG. 6Bfor configuring a plurality of battery packs in accordance with anembodiment. As with FIG. 6B, pack 601 (designated as the master batterypack at event 641) periodically sends the configuration list via message681. However, slave battery packs 602, 603, and 604 return confirmationmessages 682 a-c to confirm reception.

At event 642, battery pack 604 is removed from the battery system. Whenbattery pack 601 periodically sends message 683, only messages 684 a-bare returned. Consequently, a message timeout occurs at event 643, andmaster battery pack 601 detects that battery pack 604 has been removedand removes the entry for battery pack 604 from the configuration list.The modified configuration list is included in the next periodicbroadcast.

FIG. 6D shows a variation of the message flow scenario shown in FIG. 6B,where the configuration list is maintained in a distributed rather thana centralized fashion.

Battery pack 601 is distributed as the master battery pack at event 644.Rather than the master battery pack maintaining and sending theconfiguration list to the other battery packs, each of the activebattery packs 601-604 maintains its own configuration list andbroadcasts it via messages 691 a-d to the other battery packs via theCAN bus, where list_1, list_2, list_3, and list_4 correspond to theconfiguration messages maintained at battery packs 601-604,respectively. As necessary, battery packs 601-604 may modify its ownconfiguration list to be consistent with the configuration listsbroadcast by the other battery packs. For example, a battery pack mayhave been recently inserted into a battery system and may need to reviseits configuration list to be consistent with the current configuration.

When pack 601 is removed (for example, corresponding to event 645),periodic transmission of the periodic data frame messages from batterypack 601 terminates.

When the termination is detected by battery packs 602-604 at event 646,pack 602 assumes the role of the master battery pack. Consequently,packs 602-604 remove the top entry of the configuration list(corresponding to pack 601) that is locally maintained at the batterypacks 602-604 and periodically send the revised configuration list viadata frame messages 692 a-c.

When pack 605 (pack 5) is added at event 647, pack 605 initiates theaddress claimed procedure 693 claiming its identification (ID) value.When successfully completed, battery packs 602-604 adds pack 5 to thebottom of the local copy of the configuration list. 605 at event 648,and subsequently the revised configuration list is broadcast via dataframe messages 694 a-d. With an aspect of the embodiments related tobalancing, as will be discussed, the in-rush of electrical current amongmultiple Li-ion battery packs in a large-format battery pack system isan undesirable phenomenon arising with Li-ion battery cells since alarge in-rush electrical current may reduce the life of Li-ion batterycells. This phenomenon may occur due to a large variation of SoC valuesamong the battery packs in the battery system. For example, when abrand-new Li-ion battery pack is added to a battery pack system, itscapacity (e.g., energy level) at the beginning of its new life may benotably different than capacities of the battery cells of older batterypacks already present in the battery pack system. This energy leveldifferential between the cells of the new battery pack and the cells ofthe older battery packs can potentially damage the other Li-ion batterycells in the battery pack system. The aspect involves a balancingtechnique that leverages the internal (not external) battery managementsystem and the master-slave topology.

As previously discussed, some embodiments order a configuration listbased on the time that battery packs are connected to the communicationchannel (for example, CAN bus). With this approach, the oldest batterypack is designated as the master battery pack. However, otherembodiments may use different approaches. For example, the members ofthe configuration list may be ordered from top to bottom by decreasingvalues of the open circuit voltages of the battery packs. The opencircuit voltage of a battery pack may be measured when the batterypack's discharging array is disabled (in other words, the battery packis not discharging onto the power bus of the battery system).

Each battery pack can share its measured open circuit voltage with theother battery packs that are connected to the communication channel.Based on the measured open circuit voltages, a configuration list ismaintained, where entries for each battery pack are listed by decreasingorder. The battery pack corresponding to the top entry has the largestopen circuit voltage and serves as the master battery pack for batterysystem. With an exemplary embodiment, a battery system comprises first,second, and third battery packs having open circuit voltages V_(open1),V_(open2), and V_(open3), respectively, whereV_(open2)>V_(open3)>V_(open1). The top entry of the configuration listis associated with the second battery pack (the master battery pack)followed by an entry for the third battery pack followed by an entry forthe first battery pack. Consequently, if the second battery were tofail, the third battery pack would assume the role of the master batterypack.

With some embodiments, the battery packs in a battery system areassigned an ID and at the same time the open circuit voltage may bemeasured and stored in the configuration list. In the infrequentsituation where the open circuit voltages of two battery packs areequal, one battery pack may be chosen randomly or may be chosen by thehighest number ID.

The configuration list may be updated as battery packs are installedinto the battery system. For example, a battery pack that is installedafter discharging begins would initially enter in a standby mode (wherethe discharging array is disabled) so that an open circuit voltage canbe measured by the battery pack. The newly installed battery pack couldthan share the measured open circuit voltage with the other batterypacks via the communication channel. With some embodiments, theconfiguration list can then be updated with an entry for the newlyinstalled battery pack based on the measured open circuit voltage.However, with some embodiments, the current configuration list mayremain unchanged until the battery packs being discharged aredisconnected from the battery system.

With some embodiments, the configuration list may be centrallymaintained by the master battery pack. However, with some embodiments,each battery pack in the battery system may maintain its own copy of theconfiguration list based on information shared via the communicationchannel.

With an aspect of the embodiments related to balancing, as will bediscussed, the in-rush of electrical current among multiple Li-ionbattery packs in a large-format battery pack system is an undesirablephenomenon arising with Li-ion battery cells since a large in-rushelectrical current may reduce the life of Li-ion battery cells. Thisphenomenon may occur due to a large variation of SoC values among thebattery packs in the battery system. For example, when a brand-newLi-ion battery pack is added to a battery pack system, its capacity(e.g., energy level) at the beginning of its new life may be notablydifferent than capacities of the battery cells of older battery packsalready present in the battery pack system. This energy leveldifferential between the cells of the new battery pack and the cells ofthe older battery packs can potentially damage the other Li-ion batterycells in the battery pack system. The aspect involves a balancingtechnique that leverages the internal (not external) battery managementsystem and the master-slave topology.

With an aspect of the embodiment, different balance techniques forLi-ion battery cells may be supported in a large-format battery packsystem. For example, the aspect includes three balancing techniques:“smart converter balancing,” “start direct balancing,” and “startstaggered balancing” that may be used in a medium-large battery packimplementation to ensure the safe use and longevity of the Li-ionbattery cells. The aspect may utilize a converter (with a cellpre-charge circuit) for charge balancing each battery pack to preventand/or limit in-rush electrical current, over-current faults, and/orshort-circuit faults.

FIG. 7A shows flowchart 700 for determining a balancing type for aplurality of battery packs in accordance with an embodiment.

At block 701, the master battery pack transitions from a sleep state.For example, when an end device is not being used, the master batterypack may periodically wake up to determine whether there is a change inthe operational state.

At block 702, the master battery pack determines the number of batterypacks that are installed in the battery system. For example, the masterpack may verify that all battery packs on the confirmation list areactive on the communications channel.

At block 704, the master battery pack determines whether a minimumnumber of battery packs (including itself) are installed based on powerrequirements of a device (for example, obtained from the end device viathe communication channel).

If there are not a minimum number of battery packs available to properlypower the end device, then the configured battery packs are preventedfrom discharging at block 705 by the master battery pack instructing theslave battery packs (as well as itself) to open corresponding dischargearrays. A fault indicator is activated at block 706 that is indicativethat not enough battery packs are installed to power the end device. Ifan additional battery pack is installed at block 707, the faultindicator is cleared at block 708. If the end device is activated orotherwise enabled at block 709 (for example, the key is in the “on”position), process 700 returns to block 704. Otherwise, process 700returns to block 701.

Returning back to block 704, when the master battery pack determinesthat there are a sufficient number of battery packs, the master batterypack gathers battery pack information (for example, SoC, SoH, andvoltage information) from each of the slave battery packs as well as foritself at block 710. For example, as will be discussed in furtherdetail, the master battery pack may send a “Request for Pack Info”message to each of the configured slave battery packs and receive a“Pack Info” message from each slave battery pack in response with therequested information.

From the gathered SoC data, the master battery pack determines whetherbalancing is required at block 711. For example, some of the batterypacks may have a high SoC while some may have a low SoC. By balancingthe battery packs, a sufficient number of battery packs may be availableto properly discharge in order to power the end device.

If balancing is not required, the battery system may discharge to powerthe end device at block 717.

If balancing is required, the type of balancing is determined at block712. As will discussed in greater detail, embodiments may support threedifferent types of balancing: converter balancing (block 713), directbalancing (block 714), and staggered balancing (block 715).

Tables 1 and 2 present examples of balancing in accordance withembodiments.

TABLE 1 Example of Balancing Time Pack 1 Pack 2 Pack 3 Pack 4 Type T0100% 15% 15% 15% Converter T1  85% 20% 20% 20% Converter T2  65%  32%*32% 32% Staggered T3  60% 38%  33%* 33% Staggered T4  54% 39% 39%  34%*Staggered T5  49%  40%* 40% 40% Staggered T6  45% 43%  41%* 41%Staggered Continue staggered balancing until completed Note: “*” denotesthat the battery pack is being direct charged by Pack 1

TABLE 2 Example of Balancing Time Pack 1 Pack 2 Type T0 100% 15%Converter T1  85% 20% Converter T2  65% 32% Direct T3  60% 37% Direct T4 55% 42% Direct T5  48% 48% (Balancing Completed)

The above to examples illustrate that the type of balancing may changewhile the battery packs are being balanced. For example, with Table 1the balancing type changes from converter balancing to staggeredbalancing while with Table 2 the balancing type changes from converterbalancing to direct balancing.

After balancing, if the number of battery packs are available fordischarging, as determined at block 716, the end device may be poweredat block 717. Otherwise, the battery packs may be rebalanced based onthe revised SoC values obtained from the previous balancing.

When rebalancing occurs, as determined at block 716, the rebalancing mayutilize a different type of balancing than previously used. For example,converter balancing may be first applied while subsequent rebalancingmay utilize staggered balancing.

FIG. 7B expands on block 712 shown in FIG. 7A for determining the typeof charge balancing. For example, an embodiment may support a pluralityof balancing types such as direct balancing, converter balancing, andstaggered balancing as previously discussed.

At block 721, if the variability of the SoC values among the batterypacks is sufficiently small, the battery system is able to power the enddevice at block 722. (For example, the SoC differences between all pairsof battery packs is less than a predetermined threshold.) Otherwise,process 712 proceeds with balancing the battery packs.

Block 723 identifies the battery pack with the highest SoC value so thatthe identified battery pack can discharge, thus providing charge to theother battery packs during balancing.

At block 724 process 712 determines whether direct balancing cannot beapplied (for example, when the SoC difference between the highest SoCpack and an identified battery pack is above a predetermined SoCthreshold). If so, converter balancing is applied to the identifiedbattery pack (where the highest SoC battery pack discharges onto thepower bus and the identified battery pack charges through the power busvia its converter) at block 728. When converter balancing is completed,process 712 may revert back to block 721 and determine whether balancingcan be applied to a different combination of battery packs, where thebalancing type may be the same or may be different (for example, directbalancing or staggered balancing).

Referring back to block 724, if direct balancing can be applied (forexample, when the SoC difference between the highest SoC pack and theidentified battery pack is below the predetermined SoC threshold),process 712 determines whether converter balancing can be applied to oneor more other battery packs at block 725. If so, staggered balancing isapplied with the highest SoC pack, the identified pack, and the one ormore other packs at block 727. Otherwise, direct balancing is appliedbetween the highest SoC pack and the identified battery pack at block726.

FIG. 7C shows flowchart 700 for determining a balancing type for aplurality of battery packs in accordance with an embodiment.

Table 3 shows a relationship between an operational mode of a batterysystem and a safety interlock lock pin (indicator) and a wake pin(indicator). For example, the safety interlock pin is “On” when thebattery packs are properly inserted into the battery system (as sensedby an interlocking connection through the battery pack connectors), andthe wake pin is “On” when a user turns a key to activate a poweredappliance (end device).

TABLE 3 Mode of Operation Wake Pin Safety Interlock Pin Mode Off Off Off(Sleep) Off On Balancing On On Charging/Discharging On Off Off (Sleep)

When in the off (sleep) mode, the discharging and charging arrays of thebattery packs are disabled, and the battery packs consume only enoughelectrical power so that the battery pack may transition to anotherstate (for example, balancing mode) when the battery pack detects anappropriate signal (for example, a wake indicator).

With some of the embodiments, as shown in Table 3, a battery system maysupport a plurality of operational modes: Off (Sleep), Balancing, andCharging/Discharging. While a single mode is shown forcharging/discharging, charging and discharging are separate operationsbased on the interaction of the battery system with its externalenvironment. For example, when the wake and safety interlock indicatorsare on and if charger (typically external to the battery system) issensed via a CAN bus, the battery system enters the charging state.However, if the battery system senses an end device (for example, anappliance), the battery system enters the discharging state. As will bediscussed in further detail, a battery system may support “smartcharging” when in the charging mode and “smart discharging” when in thedischarging mode.

FIG. 7C is similar to 9A; however, process 730 includes an interactionwith sleep, balancing, and charging/discharging modes in accordance withthe relationship shown in Table 3. At block 731, when the safetyinterlock indicator is not detected, the battery system enters the sleepmode. Otherwise, the battery system (typically by the master batterypack) gathers configuration information (for example, SoC informationabout the different battery packs). At block 732, the battery systemdetermines whether the wake indicator is detected. If not, the batterysystem enters the balancing mode. Otherwise, the battery system entersthe charging/discharging mode.

FIG. 8 shows message flow scenario 800 for determining a balancing typefor a plurality of battery packs based on flowchart 700 and inaccordance with an embodiment. Master battery pack 802, based on theentries of the current confirmation list, confirms the availability ofbattery packs 803 and 804 at event 851 corresponding to messages 861 a,861 b, 862, and 863. As previously discussed, embodiments may supportdifferent messaging protocols. For example, with the CAN protocol a dataframe message may contain data in the data field that is indicative of aconfirmation request or a confirmation response. As previouslydiscussed, the interpretation of the data is in accordance with theapplication software executing at end device 801 and battery packs802-804.

End device 801 provides its power requirements in message 864 so thatmaster battery pack 802 can determine the number of battery packs neededfor end device 801 at event 852.

At event 853, master battery pack 802 gathers SoC data about the otherbattery packs via messages 865-868. (Master battery pack 802 may useinternal messaging within the battery pack to obtain SoC about itself.)For example, in accordance with the CAN protocol, data contained inRequest Pack Info message 865 may be interpreted as a request from thedestination battery pack while the data in Pack Info message 866 may beinterpreted as the requested data (for example, SoC data) from thedestination battery pack.

Based on the gathered SoC data, master battery pack 802 determines thetype of balancing required (if needed) and initiates the appropriatebalancing process (for example, processes shown in FIGS. 9, 11, and 13).

As previously discussed, embodiments may support different types ofbalancing, for example): converter balancing, direct balancing, andstaggered balancing. Converter balancing typically requires a longertime period than direct balancing,

While the processes shown in FIGS. 9, 11, and 13 are typically performedat the master battery pack, the master battery need not be changing ordischarging during balancing. This determination is based on the SoCvalues of battery cells 203 (shown in FIGS. 2A and 2B, respectively) andnot on whether a battery pack is a master battery pack or a slavebattery pack.

FIG. 9 shows flowchart 713 (referenced in FIG. 7A) for converterbalancing with a plurality of battery packs in accordance with anembodiment. Block 901 starts converter balancing, where one of thebattery packs (either the master battery pack or one of the slave masterpacks) charges one or more of the other battery packs.

With converter balancing, charge of a single battery pack is transferredto one or more battery packs via converters on each of the chargedbattery packs. Consequently, two or more battery packs are involved withthis type of balancing.

While not explicitly shown, the master battery pack gathers SoC dataabout all of the battery packs, including itself. For example, themaster battery pack may request battery status information from theother battery packs via the CAN bus and internally obtain its own SoCdata.

At block 902, the master battery pack enables the battery pack with thehighest SoC for discharging by enabling the discharging array. Themaster battery pack also enables one or more of the battery packs withthe lowest SoC to accept the charge from the discharging battery pack byenabling the charging array and the on-board converter.

The master battery pack obtains SoC values from the above battery packsat block 904 and continues the balancing process at block 905 until adesired charge balance is obtained at block 905. If the charge balanceis sufficient, the battery pack may be used to power the end device.However, a faster mode of balancing (for example, direct balancing aswill be discussed) may be subsequently applied.

FIG. 10 shows a message flow scenario for converter balancing with aplurality of battery packs in accordance with an embodiment. Batterypacks 1002, 1003, and 1004 initially have SoC values of 100%, 65%, and65%, respectively. As previously discussed, master battery pack 1002 mayobtain the SoC values by requesting battery status information andreceiving the status information via data frame messages over a CAN bus.

At event 1051, master battery pack 1002 determines that packs 1003 and1004 are to be charged by itself (pack 1002). To do so, master batterypack enables its own discharging array and enables the charging arraysand converters via messages 1061 and 1062. Balancing continues until adesired balancing charge obtained (80%, 75%, and 75%) at event 1052. Atthat time, the balancing ends so that master battery pack disables itscharging array and disables the charging arrays and converters ofbattery packs 1003 and 1004 via messages 1063 and 1064.

FIG. 11 shows flowchart 714 for direct balancing with a plurality ofbattery packs in accordance with an embodiment. When process 700, asshown in FIG. 7A, determines that direct balancing should be performed,the master battery pack initiates direct balancing at block 1101.

With direct balancing, one of the battery packs is charging anotherbattery pack through a low impedance electrical path. Consequently, onlytwo battery packs are involved with type of balancing.

While not explicitly shown, the master battery pack obtains SoC valuesfor all installed battery packs in the battery system. In order to doso, the master battery pack sends status requests to the slave batterypacks and receives status information (for example, SoC values) from theslave battery packs via messaging on the communication channel. However,because the master battery knows about its own battery cell status, onlyinternal messaging for the master battery is needed.

At block 1102 the master battery pack instructs the battery pack withthe higher SoC to start discharging by enabling its discharging arrayand at block 1103 instructs one of the battery pack with the lower SoCto start charging by enabling its charging array.

At block 1104, the master battery pack gathers SoC data from the batterpacks being charge balanced. When an acceptable SoC is reached at block1105, direct balancing is terminated at block 1106.

FIG. 12 shows a message flow scenario for direct balancing with aplurality of battery packs in accordance with an embodiment. The masterbattery pack (pack 1201) gathers initial SoC values 80%, 70%, and 90%for battery packs 1201, and 1202, and 1203, respectively.

Because pack 1202 has the lowest SoC and pack 1203 has the highest SoC,the master battery pack instructs battery pack 1202 to enable itscharging array and battery pack 1203 to enable its discharging array viamessages 1261 and 1262, respectively.

When the SoC values of battery packs 1202 and 1203 reach 80%, the masterbattery pack (pack 1202) determines that direct balancing is competed atevent 1251 and consequently disables the charging array and thedischarging array via messages 1263 and 1264, respectively.

FIG. 13 shows flowchart 714 for staggered balancing with a plurality ofbattery packs in accordance with an embodiment. When process 700, asshown in FIG. 7A, determines that staggered balancing should beperformed, the master battery pack initiates staggered balancing atblock 1301.

Staggered balancing utilizes algorithmic direct balancing. Withstaggered balancing, one of the battery packs (typically the highest SoCvalue) direct charges another battery pack with a lower SoC whilecharges one or more other lower SoC battery packs through converterbalancing (where the converter located on the charged battery pack isenabled). In order to keep the other lower SoC battery packs within anacceptable range, direct balancing may switch to a different lower SoCbattery pack while the previous lower SoC battery pack is now converterbalanced.

At blocks 1301 and 1302, direct balancing is established with a batterypack with the highest SOC with another battery pack in the group with alow SoC similar to blocks 1101 and 1102 as shown in FIG. 11. However,converter balancing is established with some or all of the battery packsin the low SoC group at block 1304.

At block 1305, the master battery pack gathers the updated SoC values ofthe participating battery packs. When the battery pack being directedcharge reaches a determined SoC threshold (for example, when animbalance occurs one of the battery packs in the low SoC group), directbalancing is established with another battery pack in the low SoC groupat block 1307.

When all of the battery packs are within an acceptable SoC range, asdetermined at block 1308, staggered balancing is terminated at block1309.

FIGS. 14-15 show a message flow scenario for staggered balancing with aplurality of battery packs in accordance with an embodiment. Referringto FIG. 14, the master battery pack (pack 1401) gathers initial SoCvalues 60%, 60%, and 100% at battery packs 1401, and 1402, and 1403,respectively.

At event 1451, master battery pack 1401 initiates direct balancingbetween battery packs 1402 (in the low SoC group) and 1403 (the highestSoC) and to establish converter balancing between battery 1403 anditself (also in the low SoC group). Consequently, master battery pack1401 sends messages 1461 and 1462, corresponding to battery packs 1402and 1403, respectively, over the communication channel and to generateany internal messaging, as necessary, to enable its charging array andconverter.

As a result of the balancing, the SoC values of battery packs 1401,1402, and 1403 change to 62%, 70%, and 88%, respectively. Because of thecharge imbalance between battery packs 1401 and 1402, master batterypack 1401 establishes direct balancing between battery pack 1403 anditself and establishes converter balancing for pack 1402. Consequently,at event 1452, master battery pack 1401 instructs battery pack 1402 toenable its converter (so that charging occurs now via the converterrather than directly) via message 1463 and to disable its own converterso that its battery cells are directly exposed to charging.

Referring to FIG. 15, as a result of the balancing, the SoC values ofbattery packs 1401, 1402, and 1403 change to 72%, 72%, and 76%,respectively. At event 1453, master battery pack 1401 determines thatbalancing has completed and terminates the staggered balancing bysending messages 1464 and 1465 to battery packs 1403 and 1402,respectively, and internally disables its charging array.

Referring to FIG. 15, as a result of the balancing, the SoC values ofbattery packs 1401, 1402, and 1403 change to 72%, 72%, and 76%,respectively. At event 1453, master battery pack 1401 determines thatbalancing has completed and terminates the staggered balancing bysending messages 1464 and 1465 to battery packs 1403 and 1402,respectively, and internally disables its charging array.

Intelligent systems and algorithmic methods (for example, process 1700as shown in FIG. 17) may ensure that SoC's corresponding to theplurality of battery packs may become more balanced, e.g., to ensurethat the plurality of battery packs can be charged together. In variousembodiments, a battery pack may include one or more batteries and/or maycomprise a device that may include one or more batteries. The one ormore batteries of a battery pack may share various characteristics(e.g., a state of charge, a state of health, etc.). Furthermore, eachbattery pack can be enabled or disabled, e.g., in their ability tocharge or discharge other battery packs or end devices.

Still referring to FIG. 16, battery packs that have a large SoCvariation may not be immediately connected with charger 1601. Forexample, as shown in FIG. 16, battery packs 1602 a and 1603 a, whicheach have lower SoC's (e.g., 20% and 20%, respectively) than otherbattery packs, may be charged earlier (e.g., before the other batterypacks) until a set threshold can be reached at which a batter pack witha higher SoC (e.g., battery pack 1604 b) can be charged. Prioritizingthe charging of battery packs with lower SoC's before the charging ofbattery packs with higher SoC's may be necessary, e.g., becauseotherwise, charging the higher battery pack with the higher SoC firstmay cause a fast in-rush electrical current to the lower SOC pack. Insome aspects, systems and devices presented herein may cause thecharging of the various battery packs by enabling the flow of electricdischarge arrays between a charger and the respective battery packs.

As shown in FIG. 16, initially charging battery packs 1602 a and 1603 acauses their SoC's to increase from 20% to 40% (e.g., as shown in 1602 band 1603 b). Charging may continue for battery packs 1602 b-1604 b untilthe SoC level of battery pack 1605 b is reached. At that point, batterypack 1605 b may be enabled so that charging can continue for batterypacks 1602 b-1605 b.

FIG. 17 shows an example flowchart of a method 1700 for charging aplurality of battery packs in accordance with an embodiment. Method 1700may be performed by a computing device having one or more processors,which may be communicatively linked to one or more of the plurality ofbattery packs and/or to the charger. Also or alternatively, thecomputing device performing method 1700 may comprise a battery pack(e.g., a “master battery pack” or a “master battery pack”) that has acapability of managing one or more functions of other battery packs ofthe plurality of battery packs. After obtaining the SoC values of thebattery packs in a battery system, a subset of the battery packs may begrouped into a lower SoC group at block 1701. For example, the obtainedSoC values (e.g., SoC readings) may be sorted into various levels, e.g.,based on predetermined ranges. Those battery packs having the lowest SoCvalues may be grouped into the lowest level. Battery packs within aspecified level may have SoC values that are within a specified orpredetermined range of one another. Those battery packs having thesecond lowest of SoC values (e.g., SoC values that are higher than thoseof the lowest level but lower than the rest of the battery packs) may beplaced into the second lowest level. As used herein, a “Lower SoC Packs”may refer to the battery packs of a list comprising (1) the group ofbattery packs of the lowest level of SoC values and (2) the group ofbattery packs of the second lowest level of SoC values.

At block 1702, an SoC threshold may be determined. The SoC threshold maybe approximately equal to the SoC value of the group of one or morebattery packs having SoC values just above the group of battery packswith the lowest SoC values. For example, the SoC threshold may be basedon the SoC values of the second lowest level (e.g., an average of theSoC values of the battery packs of the second lowest level).

The battery packs of the group with the lowest levels of SoC can beenabled for charging at block 1703, e.g., facilitating the charging ofthe battery packs having the lowest level of SoC. In some aspects, thecharging may be enabled if one or both of the safety interlock pin orthe wake pin is set to “on,” as discussed previously.

When the SoC values of the charged battery packs reach the SoCthreshold, as determined at block 1704, process 1700 may includedetermining whether to enlarge the list (e.g., the “Lower SoC Packs”list of step 1701) for subsequent charging at block 1705. Thedetermination of whether to enlarge the list may be based on whetherthere is significant variability in to SoC of the battery packs (e.g.,whether the SoC variability of the battery packs satisfies an SoCvariability threshold), as will be described further in relation to FIG.18C. If the list is to be enlarged, the SoC threshold may be updated(e.g., based on determining the second lowest level of SoC's in theupdated list), the selected battery packs may be enabled, and chargingmay continue at blocks 1706 and 1707.

FIG. 18A shows a message flow scenario for charging a plurality ofbattery packs for the example shown in FIG. 16. In this scenario,charger 1801 a may perform one or more iterations of gathering SoC data(e.g., receive SoC readings) from a plurality of battery packs (e.g.,battery packs 1802 a-1805 a), identifying SoC levels to form lists basedon the SoC levels, and enabling the charging of selected battery packsto SoC thresholds via the communication channel (for example, a CANbus). For example, at event 1851 a, charger 1801 a may gather initialSoC values 20%, 20%, 40%, and 60% from battery packs 1802 a, 1803 a,1804 a, and 1805 a, respectively.

At event 1851 b, charger 1801 a may determine that the group of batterypacks with the lowest level of SoC values includes battery packs 1802 aand 1803 a, and that the group of battery packs with a higher (e.g.,second lowest) level of SoC values includes battery pack 1804 a. A listof battery packs may be formed and may include the battery packs at thelowest levels of SoC and the battery pack at the higher (e.g., secondlowest level).

At event 1851 c, the charger 1801 a may enable the charging of group ofthe battery packs with the lowest level of SoC values (e.g., batterypacks 1802 a and 1803 a) via messages 1861 and 1862. Charging maycontinue until the SoC values for these battery packs satisfy an SoCthreshold based on a group of one or more battery packs having higherSoC values (e.g., the battery pack having the second lowest level of SoCvalues (e.g., battery pack 1804 a at 40%)).

At event 1852 a, the charger 1801 a may gather SoC values for all packs.As shown in FIG. 18A, the SoC values for battery packs 1802 a and 1803 awill have increased to 40% as a result of the aforementioned charging atevent 1851 c. At event 1852 b, charger 1801 a may determine to expandthe list of battery packs determined at event 1851 a. For example, anSoC variability may be determined for battery packs 1802 a-1805 a, andthe list may be expanded based on the SoC variability being significantenough to satisfy a SoC variability threshold. In the scenario depictedin FIG. 18A, battery pack 1806 a has an SoC value of 60%, which isdifferent from the updated SoC value if 40% for battery packs 1802 a,1803 a, and 1804 a. Thus, battery packs 1802 a, 1803 a, 1804 a, and 1805a exhibit SoC variability, which may cause the charger 1801 a to enlargethe list. The enlarged list may include an updated group of one or morebattery packs with the lowest level of SoC values (e.g., battery packs1802 a, 1803 a, 1804 a) and an updated group of one or more batterypacks with a higher level of SoC values (e.g., battery pack 1805 a). Theformer group (e.g., the group of battery packs with the lowest level ofSoC values) may thus include battery pack 1804 a. At event 1852 c, thecharger 1801 a may thus enable the charging of battery packs 1802 a,1803 a, and 1804 a via message 1863.

FIG. 18B shows an example message flow scenario for charging a pluralityof battery packs for the example shown in FIG. 16. However, rather thancharger 1801 b gathering SoC data and enabling the battery packs, masterbattery pack 1802 b does so when charger 1801 b is detected viaconnection indicator 1871. Connection indicator 1871 may be obtained bydifferent approaches, including messaging over a communication channel,a pin, and so forth.

FIG. 18C shows an example flowchart of a method 1800C for intelligentlycharging a plurality of battery packs, in accordance with a non-limitingembodiment. Method 1800C may be performed by a computing device havingone or more processors. The computing device may be a standalone devicecommunicatively linked to one or more of the battery packs and/or to thecharger. Also or alternatively, the computing device may comprise one ofthe battery packs (e.g., a master battery pack) that has the capabilityof managing one or more functions of the other battery packs of theplurality of battery packs. Also or alternatively, the computing devicemay comprise the charger.

As discussed previously, each battery pack may have a state of charge(SoC) indicating, e.g., a degree or level of charge relative to itscapacity. At step 1874, the computing device may receive a reading(e.g., first reading) of the SoC of each of the plurality of batterypacks. The reading may be obtained via a sensor or a monitor at eachbattery pack. As discussed previously, the SoC's may vary among aplurality of battery packs or may remain relatively constant. An SoCvariability (e.g., a first SoC variability) may be computed to indicatea degree of variability of the SoC of the plurality of battery packs(e.g., as in step 1875).

The SoC variability may be based on the SoC's of each of the respectivebattery packs obtained in step 1874. For example, an SoC variability maybe based on one or more of a variance, a standard deviation, a range(e.g., an interquartile range), a mean absolute difference, a medianabsolute deviation, an average absolute deviation, a distance standarddeviation, or a like metric based on the SoC values of each of theplurality of battery packs. For example, in Table 1 discussed above,which comprises a plurality of battery packs (e.g., Pack 1, Pack 2, Pack3, and Pack 4), there is greater SoC variability at time T0 than thereis at time T6. In one aspect, where SoC variability is determined on thebasis of a computed range of SoC values, the SoC variability of thebattery packs at T0 is 85 (i.e., 100%-15%), whereas the SoC variabilityat T6 is only 4 (e.g., 45%-41%). If “5” is set as an SoC variabilitythreshold, then the SoC variability at T6 may be said to have satisfied(e.g., fall below) the threshold.

In some aspects, before the computing device can receive the SoCreadings, an interlock safety pin may need to allow interaction with thebattery packs to occur. For example, the computing device may initiallydetermine that the interlock safety pin allows the receiving the SoCreadings from the plurality of battery packs.

The computing device may store, e.g., in memory device 202, a metricindicating an SoC's variability threshold, e.g., to indicate whethervariability of the SoC's is insignificant. For example, if an SoC of abattery pack (e.g., first battery pack) is significantly lower than anSoC of another battery pack (e.g., a second battery pack), it is likelythat the SoC variability will be significant and therefore not satisfythe SoC variability threshold. At step 1876, the computing device maythus determine whether the SoC variability (e.g., as computed in step1875) satisfies the SoC variability threshold.

If the SoC variability does not satisfy the SoC variability threshold(e.g., the variation in SoC's among the plurality of battery packs issignificant) the computing device may establish an SoC threshold (e.g.,as in step 1878) The SoC threshold may be based on the SoC reading ofbattery pack having the next higher SoC reading (e.g., the secondbattery pack) after the battery pack with the lowest SoC (e.g., thefirst battery pack). Thus, the computing device may identify the lowestSoC readings in order to determine the next higher SoC reading (e.g., asin 1877). For example, as discussed in relation to FIG. 16, battery pack1604 a had an SoC of 40%, which is the next higher SoC after the lowestSoC of the battery packs of 20% belonging to battery packs 1602 a and1603 a. Thus, based on the example show in relation to FIG. 16, an SoCthreshold may be set to 40%.

Furthermore, at step 1879, the computing device may cause the chargingof battery packs that have lower SoC's than the established SoCthreshold, e.g., by enabling electric charge arrays from the charger tothe battery packs. The charging may cause the SoC's of the battery packsto increase, e.g., so that it approaches, matches, and/or satisfies theSoC threshold.

In some aspects, before the computing device can cause the charging ofany battery packs, a wake pin, as discussed previously, may need toallow for the charging to occur. For example, the wake pin may need tobe set to “on” before a charging can occur. The computing device mayinitially determine that the wake pin is set to “on” before causing thecharging of the battery packs.

This can be detected by the computing device via an additional reading(e.g., a second reading) of the SoC's of each of the plurality ofbattery packs. Furthermore, the computing device may determine orcompute, based on the additional reading, a second SoC variability ofthe plurality of battery packs. The second SoC variability may be foundto satisfy the SOC variability threshold.

If the second SoC variability is not found to satisfy the SoCvariability threshold, one or more steps of method 1800C may be repeateduntil the SoC variability threshold is satisfied. For example, a new SoCthreshold may be set based on the next higher SoC after the lowest SoC,and causing the charging of the battery packs with the lowest SoC's.

Thus, one or more iterations of the following can be performed after anupdated SOC variability of the plurality of battery packs satisfies theSOC variability threshold: The computing device may identify an Nthgroup of one or more battery packs within the plurality of battery backdevices, wherein the Nth group may have the lowest level of a previousreading of the SOC of the plurality of battery packs; the computingdevice may also identify an (N+1) group of one or more battery packs ofthe plurality of battery back devices, wherein the (N+1) group can havethe second lowest level of the previous reading of the SOC of theplurality of battery packs; and the computing device may generate a listcomprising the n group and the N+1 group. In each iteration, thecomputing device may determine that the SOC variability of the list inthe current iteration does not satisfy the SOC variability threshold. Ifthe SoC variability does satisfy the SoC threshold, the computing devicemay exit the iterations loop. However, assuming the SoC variability ateach iteration does not satisfy the SoC variation threshold, thecomputing device may an SOC threshold using the previous reading of theSOC of the N+1 group. Subsequently, the computing device may cause, viaelectric charge arrays, the charging of the N group of battery packs tocause the SOC of the N group to increase and satisfy the SOC threshold.The computing device may receive a subsequent reading of an SOC of eachof the plurality of battery packs. An updated SoC variability of theplurality of battery packs may thus be determined based on thesubsequent reading of the SoC of each of the plurality of battery packs.As discussed, the above steps may be repeated until the SoC variability(updated at each iteration) satisfies the SoC variability threshold(e.g., the SoCs of the battery packs vary less than a specified range).

The following FIGS. 19A and 19B show two examples of a battery systempowering an end device based on power requirements of the end device. InFIG. 19A, only one battery pack is needed to power end device 1901 a, bwhile in FIG. 19B, more than one battery pack is needed to power enddevice 1911 a, b.

FIG. 19A shows an example of a plurality of battery packs discharging inorder to electrically power an end device in accordance with anembodiment. The initial SoC values of battery packs 1902 a-1905 a are40%, 40%, 40%, and 60%, respectively. As shown in FIG. 19A, a singlebattery pack (e.g., battery pack 1905 a having an SoC of 60%) mayinitially be used to power end device 1901 a until the SoC value of thesingle battery pack reaches 40% (the same SoC values as the otherbattery packs) (e.g., as in battery pack 1905 b). Using only a group ofone or more battery packs having the highest or higher SoC level (inthis case the single battery pack 1905 a) to initially power an enddevice, until the SoC values of the group reaches those of the rest ofthe pack, may be a more efficient and/or safe method of utilizingbattery packs to power an end device. As shown in FIG. 19A, after thesingle battery pack with the initially higher SoC value has been used toinitially power the end device, and its SoC readings reach those of theother battery packs (e.g., battery packs 1902 b-1905 b), the otherbattery packs may join in powering the end device 1901 b.

FIG. 19B shows another example of a plurality of battery packsdischarging in order to electrically power an end device in accordancewith an embodiment. As shown in FIG. 19B, the initial SoC values ofbattery packs 1912 a-1915 a are 40%, 40%, 40%, and 60%, respectively. Insome aspects, more than one battery pack may be needed to power enddevice 1911 a-b. In such aspects, various systems and methods presentedherein may be used to balance the battery packs before powering enddevice 1911 a-b. The balancing of battery packs 1912 a-1914 a may beperformed, e.g., to safeguard against the risk of an undesiredelectrical current in-rush from battery pack 1915 a, which may occur inthe absence of the balancing. When balancing is achieved, battery packs1912 b-1915 b can then power end device 1911 b.

When powering an end device (for example, a machine), connecting batterypacks with varying SoC's may be problematic. Consequently, to preventsuch problematic situations, a process (often implementing anintelligent method) may be needed to ensure that a required number ofbattery packs are connected for system discharge and enabled whenappropriate.

Typically, when multiple battery packs are needed to power an enddevice, it may be advisable for battery packs with large SoC variationsto not be connected at the same time. Rather, balancing of the batterypacks may be performed initially.

Discharging may use one or more battery packs with higher SoC valuesfirst until passing a set threshold for lower SoC battery packs, atwhich point the lower SoC battery packs may be enabled.

Processes 2000 and 2010 shown in FIGS. 20A and 20B, respectively, arebased on the above guidelines.

FIG. 20A shows process 2000 for discharging a plurality of battery packsin order to power an end device. At blocks 2001-2003, initial SoC valuesof the battery packs are gathered and balancing may be performed basedon the SoC variation and the power requirements of the end device. FIG.19B, as discussed previously, is an example illustration of the processof balancing the battery packs, as described in blocks 2001-2003.However, as will be described in blocks 2004-2008, some aspects of thepresent disclosure may involve the initial powering of an end device bya single or limited number of battery packs having a higher SoC level,before other battery packs can join in the powering of the end device.FIG. 19A, as discussed previously, is an example illustration of theprocess of powering an end device by a limited number of battery packsinitially and expanding the list of battery backs that can power the enddevice.

Referring now to block 2001 a, a power requirement of the end device maybe obtained, and a first reading of a SoC of each of the plurality ofbattery packs may be obtained. The plurality of battery packs mayinclude various battery packs or groups of battery packs with varyingSoC values. At block 2001 b, an SOC variability may be calculated todetermine a degree to which the SoC values vary among the plurality ofbattery packs. Also or alternatively, the highest SoC level may beidentified, and the computing device may determine that not all of thebattery packs have SoC values the highest SoC level.

Depending on the SoC variability, the plurality of battery packs maypose a risk if they are used to concurrently power the end device. Asdiscussed previously in relation to FIG. 19A, if a group of one or moreof the plurality of battery packs has SoC values at a level that issignificantly greater than the SoC's of the rest of the plurality ofbattery packs, it may be advisable to initially power the end deviceonly using the group with the significantly greater SoC values (e.g.,without the concurrent powering by the other battery packs of theplurality of battery packs). The computing device may allow a group of asingle or a restricted number of battery packs to power an end device byonly enabling the corresponding discharge arrays of the group. Thepathway of allowing the group to power the end device is shown in blocks2004-2008.

Another way to address the above-described and similar risks may be tobalance the battery packs, and thereby reduce the SoC variability of theplurality of battery packs, as discussed previously in relation to 21B.For example, one group of battery packs (e.g., a first group) may haveSoC values that are at a level lower than another group of battery packs(e.g., a second group). An SoC variability of the plurality of devicesmay be calculated and found to not satisfy an SoC variability threshold(e.g., the range between the highest and lowest SoC values is too high)based on the variation in SoC between the first group and second group.The computing device may thus determine that a balancing is required(e.g., “Yes” at block 2002) based on the SoC variability not satisfying(e.g., falling within) the SoC variability threshold. The battery packsmay thus be balanced according to previously discussed methods as shownin FIG. 19B.

The computing device may consequently determine whether or not abalancing is not required (e.g., “No” at block 2002). The decision maybe a preference provided (e.g., configured) to the computing device byan operator of the computing device. Also or alternatively, the decisionmay be based on two or more SoC variability thresholds. For example, ifthe SoC variability of the plurality of battery packs is higher than ahigher SoC variability threshold (e.g., a first SoC variabilitythreshold), the pathway of balancing the battery packs may be triggered.If the SoC variability is not higher than the first SoC variabilitythreshold but is still higher than a second SoC variability threshold(which is not as high as the first SoC variability threshold), thepathway depicted in blocks 2004-2008 may be triggered (e.g., causingbattery pack(s) with higher SoCs to initially power the end device).

Referring now to blocks 2004-2005, a group of one or more battery packsmay be identified and enabled (e.g., by enabling the correspondingdischarge arrays) to power the end device. The group may be identifiedby identifying the battery packs with SoCs at the highest level, or atleast at a higher level than other battery packs. The computing devicemay thus cause the group to power the end device, thereby beginning thedischarging of the group of battery packs (e.g., as in block 2005). Thegroup of discharging battery packs may reach a lower SoC level. Theresulting lower SoC level of the group, which initially had a higher SoClevel, may result in a lower SoC variability for the plurality ofbattery packs. The computing device may thus determine the updated SoCvariability at block 2006. If the updated SoC variability fails tosatisfy the SoC variability threshold (e.g., there are still batterypacks with higher SoC levels), the additional battery packs may besimilarly identified and enabled to power the end device at blocks2004-2005. After the SoC variability of the plurality of battery packssatisfies the SoC variability threshold (e.g., there is not muchvariation in the SoC levels of the plurality of battery packs), thecomputing device may allow all battery packs to power the end device.

Also or alternatively, both of the above-described pathways (e.g.,blocks 2002-2003 and blocks 2004-2008, respectively) may be combined.For example, after balancing has been performed at block 2003, a secondreading of the SoC's of each of the plurality of battery packs may beobtained, and a second SoC variability may be calculated. The SoCvariability may satisfy the SoC variability threshold, e.g., the SoC'sof the plurality of battery packs may vary less and/or have a reducedrange. Subsequently, the plurality of battery packs may concurrentlypower the end device.

FIG. 20B shows process 2010 for discharging a plurality of battery packsin accordance with an exemplary embodiment. Process 2010 is similar toprocess 2000; however, some of the battery packs may be sequesteredbased on a state of health (SoH) of the battery packs. Battery packswith a low SoH may be sequestered and used only when needed.

At blocks 2011-2013, the SoC and SoH values of the battery packs may begathered. The battery packs with SoH values that do not satisfy apredetermined SoH threshold may be sequestered, and in order to enabledafter non-sequestered battery packs have been used. Non-sequesteredbattery packs (e.g., battery packs with SoH levels that satisfy the SoHthreshold) may be used to initially power the end device based on theend device requirements and SoC values of the battery packs, asexplained herein.

For example, at block 2013, the battery packs with SoC values thatsatisfy an SoC threshold (e.g., the SoC values are above the nexthighest level of SoC among the plurality of battery packs) may beenabled to power an end device, thereby resulting in the discharging ofthese battery packs at block 2014. As shown in blocks 2014-2016, theenabled battery packs can be discharged until a lower SoC value isreached (e.g., the SoC fail to satisfy the SoC threshold). At that time,additional non-sequestered battery packs may be enabled at block 2017.However, when no non-sequestered battery packs are available, thesequestered battery packs may be considered at 2018-2020.

Sequestering low SoH battery packs may be beneficial since usage ofolder battery packs (often associated with a low SoH value) may bereduced, thus extending the life of those battery packs.

FIG. 21 shows a message flow scenario for discharging a plurality ofbattery packs for the example shown in FIG. 19A. Battery packs 2002-2005initially have SoC values of 40%, 40%, 40%, and 60%, respectively. Powerrequirements of end device 2101 may be obtained from master battery pack2102 via message 2161 over the communication channel (for example, a CANbus), where only one battery pack is needed to power end device 2101.Consequently, in accordance with process 2100, master battery pack 2102may enable battery pack 2105 for discharging via message 2162.

When battery pack 2105 reaches the SoC value of the other battery packs,master battery pack 2102 enables battery packs 2103 and 2104 viamessages 2163 and 2164 and may enable itself via internal messaging.

In some aspects, a process (for example, process 2200 as will bediscussed) may be directed to a “limp home mode” operation for a failedLi-ion battery cell in a large-format battery pack system. A “Limp homemode” operation can safely mitigate a catastrophic failure in a system.For example, the voltage of a battery cell may become very low (e.g.,below a predetermined voltage threshold), indicative of a failingbattery cell. With a medium-large battery pack implementation, theinternal battery management system may preemptively diagnose a failureand consequently may mitigate the failure by initiating a partialshutdown of the battery pack such that the equipment (end device) beingpowered by the battery system does not require a total shutdown and canstill “limp home.”

FIG. 22 a flowchart for limp home mode operation in accordance with anembodiment. At block 2201, the master battery pack detects acatastrophic failure of one or more of the battery cells of one of thebattery packs powering the end device. For example, a cell voltage inthe battery pack may drop below an acceptable minimum threshold, amaximum current is exceeded, and/or a battery cell temperature is abovean allowable range.

When the master battery pack detects the catastrophic failure, themaster battery pack determines whether an extra battery pack is neededat block 2202. For example, a battery system may have activated fourbattery packs when an end device needs only three battery packs with agiven SoC level. If so, process 2200 disables the bad battery pack andcontinues operation at block 2203.

However, if the extra battery pack is needed, the master battery packdetermines whether an unused battery pack (which may be the masterbattery pack itself) in the battery system is available at block 2204.If so, the master battery pack disables the bad battery pack (forexample, disabling the discharging array) and enables the extra batterypack (for example, enabling the discharging array) at block 2205. Ifmore than one extra battery pack is available, the master battery packmay select the extra battery pack having the largest SoC value in orderto continue service for the largest possible time. However, when noextra battery packs are available and degraded operation of the enddevice is permitted, as determined at block 2206, the master batterypack disables the bad battery pack and sends a failure alert message tothe end device about degraded operation at block 2208. However, ifdegraded operation is not acceptable for the end device, power isremoved from the end device at block 2207 to shut down the end device.

When a fault occurs at a slave battery pack, it is possible that theslave battery pack does not send a message to the master battery packunder various failure modes. However, the master battery pack maydetermine that there is no longer communication from the slave batterypack and adjust a power level (derate) to the end device.

While the bad battery pack may be a slave battery pack, the masterbattery pack itself may be the bad battery pack. For example, a faultmay occur with one of its battery cells while the processingcapabilities of the master battery pack is not compromised. If so, themaster battery pack may internally disable its own discharging array,attempt to enable the discharging array of a spare battery pack, andcontinue operating as the master battery pack.

With some embodiments, when the master battery pack has faulted, a newmaster battery pack may be assigned even if the faulty master batterypack is still operational. This approach ensures that the faulty masterbattery pack does not compromise the integrity of the overall handlingof the other battery packs.

With some embodiments, when the master battery pack has faulted, a newmaster battery pack may be assigned to allow continued deratedperformance when communication to the faulty master battery is lost.

FIG. 23A shows a message flow scenario for limp home mode operation inaccordance with an embodiment. With this scenario, a spare battery pack(e.g., pack 2104 a) is available when a catastrophic failure is detectedat battery pack 2103 a.

At event 2151 a, master battery pack 2102 a detects a catastrophicfailure at battery pack 2103 a in response to failure notificationmessage 2161. For example, battery pack 2103 a may provide batterystatus information indicative of a low battery cell voltage. The statusinformation may be in response to a query from master battery pack 2102a or may be autonomously sent when a catastrophic event occurs.Consequently, master battery pack 2102 a enables spare battery pack 2104a and disables bad battery pack 2103 a via messages 2163 and 2162,respectively.

FIG. 23A shows a message flow scenario for limp home mode operation inaccordance with an embodiment. With this scenario, a spare battery packis not available.

At event 2152, similar to the message scenario in FIG. 23A, masterbattery pack 2102 b detects a catastrophic failure at battery pack 2103b when receiving failure notification message 2164 from 2103 b. Becausemaster battery pack 2102 b determines that no spare battery pack isavailable, master battery pack 2102 b disables battery pack 2103 b viamessage 2165 and sends degradation message 2166 to end device 2101 b,where end device 2101 b is able to operate in a degradation mode.

Referring to FIGS. 23A-23B, failure notification messages 2161 and 2163may be autonomously sent from the battery pack incurring thecatastrophic failure or may be sent in response to a request for batterystatus information from master battery pack 2102 a,b. When sentautonomously, the battery pack may detect when a battery parameter (forexample, SoH or cell voltage) drops to a predetermined threshold andthen sends the failure notification message to master battery pack 2102a,b. When sent in response to a status request, master battery pack 2102a,b, the status request repetitively (for example, periodically). Thebattery pack receives the status requests and, in response, providescurrent battery status information. When one or more of the returnedbattery parameters drops below a predetermined threshold, master batterypack 2102 a,b detects a catastrophic failure at the battery pack.

With some embodiments, master battery pack 2102 a,b may receive periodicbattery status information from the other battery packs. When masterbattery pack 2102 a,b detects a sudden drop (for example, more than apredetermined difference with respect to the previous value) in one ofthe battery parameters (for example, cell voltage), master battery pack2102 a,b may determine that a catastrophic failure at the correspondingbattery pack is predicted or imminent and take preemptive action and/orgenerate a warning notification.

With some embodiments, battery cells 203 (shown in FIGS. 2A and 4B,respectively) may have a cell structure (for example, a parallelstructure) so that the battery pack may deactivate the failing batterycells while the other battery cells remain enabled. In such a situation,the battery pack may operate in a degraded mode and report that thebattery pack is operating in the degraded mode to master battery pack2102 a,b.

Some battery chemistries are self-limiting in that, as a first batteryreaches a higher state of charge, a rate of increase in the voltageacross that battery begins to slow, allowing other batteries with lowerstates of charge to receive more power and increase their states ofcharge more quickly while the battery with the higher state of chargeincreases more slowly. However, other battery chemistries experience adifferent type of voltage change as their SOCs increase. For example,when quickly charging battery cells that have a Li-Ion phosphate (LFP)battery chemistry, the battery cells that have a higher SOC mayexperience a faster rise in voltage across them than cells that have alower SOC. Other battery chemistries that exhibit similar fast rises involtages across cells with a high SOC include Lithium Nickel ManganeseCobalt Oxide (NMC), Lithium Nickel Cobalt Manganese Oxide (NCM), andLithium Nickel Cobalt Aluminum oxide (NCA). Because overcharging anyindividual battery cell can lead to failure of that cell in an overallarray of battery cells, it is desirable to prevent overcharging of anyindividual battery cell in an array. Because of the divergent nature ofvoltages across batteries of different SOCs of the LFP battery chemistrywhen being charged, an individual battery cell may be inadvertentlyovercharged despite having overvoltage protection algorithms programmedinto a controller that controls a voltage applied across the batterycells. Because of the fast increase in a voltage level across onebattery cell compared to others and the need to rapidly reduce thecharging voltage across that battery cell, fast charging of batterieswith these battery chemistries has been avoided in favor of only slowlycharging batteries with these battery chemistries.

FIG. 24 shows an example of states of charge (SOC) of battery cells ofcertain chemistries while being charged. FIG. 24 is a prophetic exampleonly used to generally illustrate issues with having chemistries withvoltages that quickly increase when approaching their fully chargedstate. Voltage levels 2401 are shown in FIG. 24 over time. Initially,during a first interval, states of charge of the batteries arerelatively constant as voltage level 2404. During that first interval, acurrent draw for charging the batteries is also low as shown by currentlevel 2409. Next, a higher voltage is applied to the batteries shown byan increase in the voltage 2405 across the batteries as well as anincrease in the current 2410 consumed by charging the batteries. As thebatteries gradually charge with the rising voltage level 2406 acrossthem, the current consumed decreases 2411. During a next interval thevoltages 2407 across individual batteries begin to change at differentrates. A battery cell with a high charge 2402 may experience a fast risein its voltage level while the remaining battery cells 2403 do notexperience the same fast rising voltage level. As the voltages acrossthe batteries are increasing, the current drawn by the battery cellsdecreases during interval 2412. To prevent the battery cell with thehighest voltage level 2402 from being overcharged while the otherbattery cells have not yet reached their desired SOC, the currentflowing into the battery cells may be reduced at 2413. During interval2414, the voltage across the battery cell 2402 with the highest SOC maydecrease by providing the energy stored within it to the remainingbattery cells 2403. To change the voltage level applied across thebattery cells, a buck converter may be used to reduce a higher voltagelevel of the power charging the cells to a lower voltage level. Thisreduction may help prevent one battery cell from reaching an overchargedstate while continuing to permit the remaining battery cells to charge.

FIGS. 25A and 25B show examples of implementations of a buck converterin a battery pack. FIG. 25A shows an example of a buck converter beingused to reduce a voltage across an array of battery cells to prevent anovervoltage state of one or more of the cells. FIG. 25A shows a powersource 2501, an array of battery cells 2502, a battery cell voltagedetector 2503, a switch 2504, and a buck converter 2505. FIG. 25A alsoshows two pathways 2506 and 2507 for power to flow from the power source2501 to the array of battery cells 2502.

The battery cell voltage detector 2503 may detect voltages across eachof the battery cells in the battery cell array 2502. Based on at leastone of the voltages across the battery cells in the battery cell array2502 reaching or exceeding a threshold voltage, the cell voltagedetector 2503 may control switch 2504, via signal line 2508, to changewhich pathway 2506 or 2507 is being used to charge the array of batterycells 2502.

The selected threshold voltage may be at or near a maximum voltage levelfor a battery cell or below the maximum voltage level to account forswitching delays. Some battery chemistries are susceptible todegradation and/or failure based on a voltage across a battery cellreaching a certain high voltage. To prolong the life of a battery celland/or an array of battery cells, it is desirable to prevent any cellfrom experiencing a degrading high voltage. The threshold voltage, usedby the battery cell voltage detector 2503, may be set at the degradinghigh-voltage level or lower than the degrading high-voltage level (e.g.,to prevent the fast rising voltage from reaching the overchargingvoltage state). By setting the threshold voltage lower than thedegrading high-voltage level, switching delays may be accounted for bythe circuits of FIG. 25A and FIG. 25B. In one or more examples, acomparator may be used to determine whether a voltage across any batterycell has reached or exceeded the threshold voltage. A comparator (e.g.,an operational amplifier connected as a comparator and/or variousdiscrete components connected as a comparator) may be used to respondquickly to the change in voltage across any battery cell. In somebattery chemistries, the rate of change of the voltage may be high suchthat an integrated circuit may be too slow to respond before a batterycell reaches an over-voltage state. Because of the high likelihood offailure of an individual battery cell after reaching the over-voltagestate, ensuring that voltages across all battery cells are kept belowthe over-voltage state is beneficial. As described herein, some batterychemistries experience very fast increases in their SOCs over a shortperiod of time. As some cells may have a higher SOC than others, thesetypes of battery chemistry, when performing a fast charge of the cells,may create diverging SOC levels in a short time interval where voltagesacross cells with the higher SOCs increase faster than voltages acrosscells with lower SOCs. Because those cells with higher voltages acrossthem may reach an overvoltage state (possibly negatively affecting thosecells' lifespan and/or creating a catastrophic situation) in a veryshort period of time, an integrated circuit with its internal logic maybe too slow to prevent an overvoltage situation. As described herein,one or more aspects address this extremely fast rise of voltages in somecell chemistries by using a fast-acting circuit to reduce a highcharging voltage to a lower level, thereby preventing the cells with thefast rising charges from reaching an overvoltage state. In one or moreexamples, the fast-acting circuit may be coupled with the slower-actingcontroller to maintain the charging voltage level at a lower level. Forinstance, with the fast-acting circuit quickly dropping the chargingvoltage, a possibility exists that, once the voltage across thehigher-voltage cells decreases, the fast-acting circuit may permit thecells to begin charging at the higher voltage level (e.g., creating anundesired oscillation of charging levels). By enabling the controller todetermine when the overvoltage protection for one or more cells has beentriggered, the controller may continue to maintain the lower chargingvoltage across the cells despite the cell with the highest voltagedropping below the triggering threshold voltage level.

Examples of battery chemistries that may benefit from fast charging at ahigh level with a fast drop in charging voltage once one cell is at ornear an overvoltage protection threshold include Li-Ion phosphate (LFP),Lithium Nickel Manganese Cobalt Oxide (NMC), Lithium Nickel CobaltManganese Oxide (NCM), and Lithium Nickel Cobalt Aluminum oxide (NCA).These are examples and are not considered exhaustive of batterychemistries exhibiting the fast rise in voltages across cells whenreaching a high SOC. Because of the fast increase in a voltage levelacross one battery cell compared to others and the need to rapidlyreduce the charging voltage across that battery cell, fast charging ofbatteries with these battery chemistries may be performed safely.

In a first state, the switch 2504 may connect power source 2501 topathway 2506 that is connected to a power terminal of the array ofbattery cells 2502. In the first state, the array of battery cells 2502are charged with a full voltage from power source 2501. In a secondstate, the switch 2504 may connect power source 2501 to pathway 2507that is also connected to the power terminal of the array of batterycells 2502. In the second state, the buck charger 2505 may reduce ahigh-voltage from power source (e.g., a “first voltage” or “firstvoltage level”) 2501 to a lower voltage (e.g. a “second voltage” or a“second voltage level”).

In FIG. 25A, the array of battery cells 2502 is shown including fivebattery cells (identified in FIG. 25A as battery cells 1-5). It isappreciated that a greater number of battery cells may be used or fewerbattery cells may be used as desired.

In the above description, the switch 2504 starts in the first statewhere the full voltage level is provided to the array of battery cells2502. Additionally or alternatively, the switch 2504 may start in thesecond state where a lower voltage is provided to the array of batterycells 2502, and later, by switching from the second state to the firststate, provide the higher voltage to the array of battery cells 2502.

FIG. 25B shows another example of a buck converter being used to reducea voltage across an array of battery cells to prevent an overvoltagestate of one or more of the cells. FIG. 25B includes a number of theelements of FIG. 25A including a power source 2501, an array of batterycells 2502, a battery cell voltage detector 2503, a switch 2504, and abuck converter 2505. FIG. 25B also shows the two pathways 2506 and 2507for power to flow from the power source 2501 to the array of batterycells 2502. In addition to the contents of FIG. 25A, FIG. 25B alsoincludes a second switch 2509 that selectively connects one of pathway2506 or pathway 2507 to the array of battery cells 2502.

The battery cell voltage detector 2503 may detect voltages across eachof the battery cells in the battery cell array 2502. Based on at leastone of the voltages across the battery cells in the battery cell array2502 reaching or exceeding a threshold voltage, the cell voltagedetector 2503 may control each of switch 2504, via signal line 2508, andswitch 2509, via signal line 2510, to change which pathway 2506 or 2507is being used to charge the array of battery cells 2502.

In the first state, the switch 2504 may connect the power source 2501 topathway 2506 and the switch 2509 may connect the pathway 2506 to a powerterminal of the array of battery cells 2502. In the first state, thearray of battery cells 2502 are charged with a full voltage from powersource 2501. In the second state, the switch 2504 may connect powersource 2501 to pathway 2507 and the switch 2509 may connect the pathway2507 to a power terminal of the array of battery cells 2502.

In the second state, the buck charger 2505 may reduce a high-voltagefrom power source (e.g., a “first voltage” or “first voltage level”)2501 to a lower voltage (e.g. a “second voltage” or a “second voltagelevel”). In FIG. 25B, as in FIG. 25A, the array of battery cells 2502 isshown including five battery cells (identified as battery cells 1-5). Itis appreciated that a greater number of battery cells may be used orfewer battery cells may be used as desired.

In the above description, the switch 2504 starts in the first statewhere the full voltage level is provided to the array of battery cells2502. Additionally or alternatively, the switch 2504 may start in thesecond state where a lower voltage is provided to the array of batterycells 2502, and later, by switching from the second state to the firststate, provide the higher voltage to the array of battery cells 2502.

While not explicitly shown in FIG. 25A or FIG. 25B, a controller mayalso be included to maintain the use of the buck converter pathway 2507after the detected high voltage across the battery cell drops below thethreshold voltage.

FIG. 26 shows a battery pack having a buck converter with multiplevoltage detectors. A power source 2601 provides charging power to anarray of battery cells 2602 where the voltage level associated with thepower provided to the array of battery cells 2602 is controlled byvoltage detectors 2603. FIG. 26 includes a switch 2604 configured toswitch between a first pathway 2606 and 2607 where pathway 2607 alsoincludes a buck converter 2605. Power transmitted through pathway 2606is at a high-voltage level, near the supply voltage level of powersource 2601, accounting for voltage drops across switches (e.g. switch2604 and others) and/or across other connections. Power transmittedthrough pathway 2607 is modified by buck converter 2605 to reduce thesupplied voltage from the high-voltage level of pathway 2606 to a lowervoltage of 2607.

A voltage across each battery cell in the array of battery cells 2602 ismonitored by a voltage detector of the voltage detectors 2611, 2612,2613, 2614 and 2615. Five battery cells are shown in FIG. 26. It isappreciated that a greater number of or fewer battery cells may be usedin the quantity of voltage detectors modified accordingly. With respectto the lowest battery cell in the series connection of the array ofbattery cells 2602, the voltage across the battery cell is monitored byvoltage detector 2611. Voltage detector 2611 may comprise a comparator2609, a reference voltage 2608, and a voltage 2610 from the firstbattery cell, as passed through a voltage divider. In the example ofFIG. 26, the voltage divider is a pair of resistors with values selectedto properly compare a voltage across the battery cell with the referencevoltage. The reference voltage may be selected such that, when thebattery cell is at the threshold voltage described above, the referencevoltage reflects that threshold voltage adjusted via the voltagedivider. In other words, from the perspective of the battery cellitself, its voltage is being compared with the threshold voltage. Inshort, the voltage detector 2611 is configured to compare a voltageacross the battery cell with the threshold voltage.

The output of the voltage detectors 2603 may control a gate of theswitch 2618 (e.g., a MOSFET, power MOSFET, and/or other switch), inwhich a terminal of its conduction path (e.g., a source terminal of ann-type MOSFET) is connected to a negative terminal of the power source2601 and another terminal of its conduction path (e.g., a drain terminalof the n-type MOSFET) is pulled up to a voltage supply (e.g., Vcc) by aresistor 2616. The drain terminal of switch 2618 may also be connectedto switch 2604. As shown in FIG. 26, switch 2604 may comprise a pair ofswitches of different types. For instance, switch 2620 may be an n-typeMOSFET connected between power source 2601 and pathway 2606 and turnedon when its gate 2617A is at a high voltage (e.g. when pulled up bypull-up resistor 2616 when switch 2618 is off). When gate 2617A is at alow-voltage, the switch 2620 is turned off. The gate 2617A is pulleddown by switch 2618 when switch 2618 is turned on by at least one ofvoltage detectors 2603 having detected that at least one of the batterycells 2602 is at a threshold voltage.

In one example, switch 2621 may comprise a p-type MOSFET (or otherswitch) of an opposite polarity than switch 2620. With the oppositepolarity, switch 2621 may be off when switch 2620 is on as well asswitch 2621 may be on when switch 2620 is off. With respect to FIG. 26,the gate 2617B of switch 2621 is tied to the gate 2617A, such thatswitch 2621 varies inversely with the state of switch 2620. It isappreciated that other types of switches may be used in place of or inaddition to the switches described in FIG. 26 and in other figures.While not explicitly shown in FIG. 26, a controller may also be includedto maintain the use of the buck converter pathway 2607 after thedetected high voltage across the battery cell drops below the thresholdvoltage.

FIG. 27 shows a battery pack having a buck converter with a singlevoltage detector detecting voltages across battery cells. A power source2701 provides charging power to an array of battery cells 2702. Based ona state of a switch 2704, a first pathway 2705 may be used to provide ahigh voltage across the series connected battery cells 2702 or a secondpathway 2707 may be used to provide a lower voltage (e.g., reduced viabuck converter 2706) across the series connected battery cells 2702. Avoltage across each battery cell may be compared with a thresholdvoltage by a voltage detector 2710. The voltage detector 2710 mayinclude two cycling inputs 2708 and 2709 that cycle together acrossresistors 2703 to compare, via comparator 2716, the voltage acrossresistors 2703 with a reference voltage. Based on that comparison, thevoltage detector 2710 may determine whether a voltage level across anyof batteries 2702 exceeds a threshold voltage. Based on thatdetermination, a switch 2711 may be turned on (e.g., via an output ofvoltage detector 2710 being high and turning on n-type MOSFET 2711).Once switch 2711 is turned on, the switch 2704 may change which pathway2705 or 2707 is used to power the array of battery cells 2702.

As shown in FIG. 27, switch 2704 may comprise in n-type MOSFET 2714 withits gate 2713A pulled up by resistor 2712 to Vcc. Once switch 2711 isturned on, gate 2713A is pulled low and turns off switch 2714. Similarlyswitch 2704 may also include a switch 2715 of an opposite polarity typethan switch 2714 (e.g., switch 2715 may comprise a p-type MOSFET) thatis normally in an off state when it is gate line 2713B is high and, whenit is gate line 2713B pulled low, is turned on to allow buck converter2706 to reduce of voltage level of the power charging the array ofbattery cells 2702.

Controller 2717 may control the cycling of switches 2708 and 2709 tocontrol them to sample the voltages across resistors 2703. Additionallyor alternatively, controller 2717 may also determine when voltagedetector 2710 has detected a voltage across one of battery cells 2702having exceeded the threshold voltage and may maintain switch 2704 in astate such that the pathway 2707 with the buck converter 2706 is used tocontinue to charge the battery cells 2702 at the lower voltage level.

FIG. 28 shows another example of battery states of charge while chargingwith batteries of certain chemistries. FIG. 28 shows a prophetic exampleof voltage levels 2805-2811 across individual battery cells 2803 and anoverall current 2812 consumed by the battery cell array. During aninitial charge interval 1801, voltages 2803 of the battery cells may beslowly increased using lower voltage power. During that initial chargeinterval 1801, the current consumed is also low 2813. At time 2802, apower supply voltage is increased and the voltages across the individualbattery cells begin to increase as well. As the voltages across thebattery cells increase, the current consumed by the battery cellsdecrease 2814. At time 2804, a voltage detector determines that avoltage 2805 across one of the cells has reached a threshold voltage. Toprevent that cell from reaching an over-voltage state, the voltageacross the battery cells may be reduced to gradually charge theremaining cells while preventing the overvoltage state of the batterywith the highest charge. After the charging voltage has been reduced,the current consumed is also low 2015.

FIGS. 29A, 29B, 29C, and 29D show flow charts for determining when touse a buck charger for charging battery cells with a chemistry thatdiscourages fast charging. FIG. 29A shows a first flowchart for chargingbattery cells. In step 2901, a voltage detector determines whether allcells are fully charged. If all cells are fully charged, then the systemmay stop charging (main and/or buck charging) and/or enable a tricklecharge as described in step 2910. If less than all cells are fullycharged, the system determines in step 2902 whether at least one cell'svoltage is greater than or equal to an overvoltage protection thresholdvalue. Because the voltage detector is looking for any cell near theovervoltage protection threshold value and triggers based on that thataction, the voltage detector is effectively checking the voltage of thecell with the highest voltage across it against the overvoltageprotection threshold value. If the voltage of any cell is greater thanor equal to the over voltage protection threshold value, the systemdisables charging in step 2903 and balances the cells in step 2904. Forinstance, the higher voltage cell or cells may be controlled to chargethe lower voltage cells. After balancing in step 2904, the systemdetermines, in step 2901, whether all cells are fully charged.

If the voltage of no cell is greater than or equal to the overvoltageprotection threshold value, the system enables charging in step 2905.The system determines, in step 2906 whether the cells are balanced. Ifthe cells are not balanced, the system enables the buck charger in step2907 to decrease the current and permit cell balancing while the cellsare charged with a lower current. During or after the use of the buckcharger in step 2907, the system determines whether the cells arebalanced in step 2906. If the cells are balanced, the system determines,in step 2908, whether all cells are fully charged. If all cells are notfully charged, the system enables the main charge path to fast chargethe battery pack. After or during charging using the main charge path instep 2909, the system determines, in step 2901, whether all cells arefully charged.

If the system determines in step 2908 that all cells are fully charged,the system disables the main charge path at the fully charging currentand enables charging with a nominal current to maintain the chargedstate of the cells. In step 2911, the system may generate an indication(e.g., powering an indicator light) to indicate to a user that thebattery pack is fully charged. The process returns to step 2901 todetermine whether all cells are fully charged.

Additionally or alternatively, if, in step 2902, the system determinesthat at least one cell is greater than or equal to the over voltageprotection threshold value and has repeatedly attempted to disablecharging in step 2903 and balance the cells in step 2904, the systemmay, in lieu of further disabling and balancing, enable the buck chargerin step 2907 to permit charging of all cells at a lower rate. In somesituations, the remaining cells may become balanced while the overvoltage cell remains at its over charged state.

There may be instances where one or more cells, despite having beencharged by the buck charger for an extended period of time, are notbalancing (e.g., their states of charge are not beginning to approximatethe states of charge of the remaining cells). To prevent the system fromremaining in the buck charging state, the system may, via step B, fromeither the enable charging step 2905 and/or from the enable buck chargerstep 2907, proceed to step 2913 of FIG. 29B where the system determineswhether the buck charger has been operating for a time threshold. If thebuck charger has been operating for the time threshold (e.g., operatingand the cells remain unbalanced), the system may disable charging instep 2914. Optionally, an alert may be provided to a user via, forinstance, a warning light illuminated on the battery or charging systemindicating that charging has been disabled. If the buck charger has notbeen operating for the time threshold of step 2913, the system mayreturn to FIG. 29A via reference C and determine whether the cells arebalanced in step 2906.

Further, there may be instances where battery cells are charged at alower rate via the buck charger to protect the health of the batterycells. For instance, where an ambient temperature or a temperature of abattery pack is below 0° C., charging at a high current may damage thebattery cells. Similarly, where an ambient temperature or a temperatureof a battery pack is above 45° C., charging at a high current maylikewise damage the battery cells. The system may include a temperaturecheck to determine to charge at the full current or to charge at thereduced current from the buck charger. The system may, via step D, fromeither the enable charging step 2905 and/or from the enable buck chargerstep 2907, proceed to step 2915 of FIG. 29C where the system determineswhether the temperature is above a minimum temperature threshold and isbelow a maximum temperature threshold. For instance, the minimumtemperature threshold may be 0° C. or a few degrees higher or lower asdesired to balance reduced charging rates against reduced chargingtimes. Similarly, the maximum temperature threshold may be 45° C. or afew degrees higher or lower as desired to balance reduced charging ratesagainst reduced charging times. In step 2915, the system determineswhether the temperature (ambient and/or a battery pack) is within thetemperature range between the minimum temperature threshold and themaximum temperature threshold. If the temperature is between the minimumand maximum temperature thresholds, the system proceeds via reference Eto step 2906 of FIG. 29A to determine whether the cells are balanced. Ifthe temperature (ambient and/or a battery pack) is not between theminimum temperature threshold and the maximum temperature threshold, thesystem determines, in step 2916, whether all cells are fully charged. Ifthe cells are not fully charged, then, in step 2917, the buck charger isenabled to charge the cells with a decreased current while permittingthe cells to balance. If the cells are fully charged as determined instep 2916, then in step 2918 the main and/or buck charging is disabledand a trickle charge enabled. The system may, in step 2919, indicate thebattery pack has been charged.

FIG. 29D shows an alternative example for charging battery cells havinga battery chemistry that discourages fast charging. As FIG. 29D includessimilar steps to those of FIG. 29A, commonly referenced steps aredescribed above with respect to FIG. 29A. In step 2920, in place of FIG.29A's step 2902, the system determines whether a least one cell'svoltage level is changing faster than rates of change of other cells. Ifthe rate is changing faster, then the system disables charging in step2903 (or enables the buck charger in step 2907). If the rates are thesame, then the system enables charging in step 2905. The references atB, C, D, and E refer to the corresponding references B, C, D, and E onFIGS. 29B and 29C.

FIG. 30 shows a first example of an over-current protection system foruse with batteries. In FIG. 30, a power supply 3001 provides power tocharge battery packs 3002 arranged in parallel. The power pathway fromthe power supply 3001 to the array of battery packs includes a switch3003 and a current detector 3004. The switch 3003 is controlled by asignal from an over-current protection circuit 3005. The over-currentprotection circuit 3005 may be controlled by one or more of the currentdetector 3004 and a controller 3006. As represented by dashed arrow3007, the current detector may be located between the switch 3003 andthe battery packs 3002 instead of between the switch 3003 and the powersource 3001.

An issue associated with sets of batteries is preventing a short circuitwithin a battery from damaging the other batteries and/or overallsystem. In the example of FIG. 30, if one battery pack experiences ashort, the current for the collection of battery packs increases. Thecurrent detector 3004 detects the elevated current and disables the mainpower charging path.

In a related example, batteries 3002 of FIG. 30 may represent individualcells of a single battery pack. When one of the individual battery cells3002 experiences a short, the current detector 3004 detects a rise incurrent and disables the charging path.

FIG. 31 shows a second example of an over-current protection system foruse with batteries. A power source 3101 provides power to a parallelarray of battery packs 3102. The pathway from the source 3101 to theparallel array of battery packs 3102 may include a switch 3103 and acurrent detector 3104. The current detector 3105 may comprise a resistor3104 in the current pathway with a comparator 3108 configured to detecta voltage across the resistor 3104. With the resistor 3104 having knownresistance, the comparator may compare the voltage across that resistor3104 with a reference voltage and trigger when the voltage across theresistor 3104 exceeds a threshold voltage, indicating the currentthrough the resistor 3104 has exceeded a threshold current. Variousadditional resistors 3106, 3113, 3107, and 3114 are shown as an exampleof a configuration of a comparator. The resistance values may beselected to trigger the comparator 3108 when the voltage across resistor3104 exceeds a voltage threshold. Other configurations for currentdetectors are known and within the scope of the disclosure. The outputof comparator 3108 may control a switch 3109 to ground a gate of switch3103 by turning it off. If switch 3109 is off, the gate of switch 3103is pulled high by resistor 3110 being connected to a supply voltage(e.g., Vcc).

It is appreciated that different polarity switches and pull-up and/orpull-down resistors may be used alone or in combination in the exampleof FIG. 31, without departing from the scope of the disclosure. Forexample, switch 3103 may be changed to a P-type MOSFET, resistor 3110connected between the gate of switch 3103 and ground, and switch 3109configured to connect the gate of switch 3103 to Vcc when turned on.These and other modifications are considered within the scope of thedisclosure of FIG. 31 as well as other figures described herein.

The change in state of the output of the current detector 3105 may turnoff switch 3103. Once the current across resistor 3104 drops below thecurrent threshold, the voltage output of the current detector 3105 mayalso drop. This may lead to an undesired cycling of power being appliedto/removed from/reapplied to the battery packs 3102 despite nocorrection of the short-circuiting of a given battery pack. To preventthe cycling, controller 3111 may detect the change in state of theoutput of the current detector 3105 (having turned on switch 3109) andensure switch 3103 does not turn back on until a subsequent event (e.g.including but not limited to a replacement of one or more of the batterypacks 3102, a reset button is pressed, and/or a subsequent command toresume charging of the array of battery packs 3102).

FIG. 32A shows a third example of an overcurrent protection system foruse with batteries. For simplicity, a power source is not shown in FIG.32A. FIG. 32A comprises a current cut off switch 3201 and an array ofbattery packs 3202. Each battery pack is connected between an output ofthe current cut off switch 3201 and a power bus. In series with eachbattery pack 3202 is a resistor 3203-3207 that permits sensing of acurrent flowing into a respective battery pack. FIG. 32A also comprisesa number of comparators 3208 connected across specific resistors3203-3207 to determine whether a current flowing into a given batterypack exceeds a current threshold (e.g. by determining whether a voltagedrop across a resistor associate with that battery pack exceeds athreshold voltage. Outputs of the comparators 3208 control a gate ofswitch 3209. The gate of switch 3209 is generally pulled up by pull-upresistor 3210 to Vcc but, upon one or more of comparators 3208indicating a current through the battery pack exceeds a thresholdcurrent, switch 3209 is turned on and switch 3201 is turned off. In theexample of FIG. 32A, a gate of switch 3209 is normally low as pulleddown by pulldown resistor 3211 but, upon one or more comparators 3208turning on, the gate of switch 3209 is brought to a high state and 3209is turned on. It is appreciated that other polarities of switches may beused as well as other combinations of pull-up and/or pulldown resistors.Further other configurations of the various components of FIG. 32A arewithin the scope of the disclosure (e.g., including a greater quantityof switches or fewer quantity of switches as desired).

FIG. 32A, with its individual current detectors per battery pack, issimilar to the additional example of FIG. 30 where 3002 refers toindividual battery cells of a given battery pack. In addition to currentdetectors herein that respond to current spikes where a batter pack orbattery cell experiences a short, the current detectors may also respondto instantaneous current spikes that may be caused by other sources. Forexample, where inductance exists between the power source and thebattery array (when using long lengths of cables between the powersource and the batteries), a removal of a battery pack may cause aninstantaneous spike in current at the remaining battery packs.Specifically, if a current of six amps is flowing into three batteriesarranged in parallel, an average of two amps may be flowing into eachbattery. However, removing one of the three batteries from the powerdistribution arrangement may create an instantaneous current spike ofthree amps for each of the remaining batteries (an increase in currentof 50% over the original two amps). If one of those two batteries reactswhile the other does not, the inductance in the power pathway may resultin an instantaneous current of six amps (an increase in current of 200%over the original two amps) in the remaining battery. These currentspikes may quickly exceed any of the batteries' rated currents and causeirreversible harm to the batteries. The circuit of FIG. 32A provides asolution by detecting an over-current event per battery pack and stopsthe current flow for each individual battery pack.

FIG. 32B shows a fourth example of an overcurrent protection system foruse with batteries. FIG. 32 B includes three battery packs 3213-3215. Itis appreciated that a greater quantity or fewer battery packs may beused as desired. Each battery pack is connected between a positive powerbus line 3220 and a negative power bus line 3221. A controller areanetwork (CAN) 3222 connects controllers of each of the battery packstogether. Each battery pack may comprise a switch 3216, a currentdetector 3217, and battery cells 3218. The current detector 3217determines whether a current flowing into battery cells 3218 is equal toor greater than a threshold current level. Upon detection of the currentbeing equal to or exceeding the threshold current level, the currentdetector 3217 controls an overcurrent protection circuit 3223 to disableswitch 3216 from providing current to the battery cells 3218. To preventa cascading overcurrent situation, the triggering of a first currentdetector in a first battery pack may also control overcurrent protectioncircuits in other battery packs. For instance, an output of currentdetector 3217 may also be provided to the CAN 3222 such that overcurrentprotection circuits 3223 in other battery packs (e.g., battery packs3214 and 3215) may also be triggered to turn off switches 3216 in eachof those battery packs. Further, FIG. 32 B may further comprise acontroller 3219 that detects a change in state of current detector 3217and maintains switch 3216 in an off state until occurrence of anotherevent (e.g., replacement of a battery pack, a reset button being pushed,a reset instruction being received over CAN 3222, and the like).

FIG. 33 shows a first example of balancing battery packs in series. FIG.33 comprises an array 3300 of battery packs 3301 and 3302 in series asjoined by connector 3319. The battery packs 3301 and 3302 may compriseone or more switches 3303-3308 as controlled by controllers 3309-3310 toprovide power to one or more cells 3313-3314. Controllers 3309-3310 mayalso selectively enable or disable bypass switches 3315-3316. The bypassswitches 3315-3316 permit a controller of one of the battery packs toremove it from being charged by incoming power when the cell or cellshave reached a high state of charge (SOC) while a cell or cells of otherbattery packs have not reached the same high SOC. For instance, if cell3313 of battery pack 3301 has reached a high SOC, the controller 3309may selectively control switch 3315 to bypass cell 3313 of battery pack3301 in the series connection between the battery packs of array 3300.As shown in FIG. 33, each of the battery packs have an internalresistance 3311-3312 that may limit the efficiencies of bypassing anygiven cell 3313-3314. Various other impedances are shown as resistors3317-3318 to model voltage drop across each battery pack. CANconnections to each controller 3309-3310 are generally shown asconnections 3320-3321, respectively.

In other words, the circuit of FIG. 33 includes current limitingresistors 3311-3312 that limit the current provided to the next batterypack when the battery packs are in series. The bypass circuit of FIG. 33effectively uses current limiting resistors 3311-3312 to consume thepower that would have been used had the cells not been bypassed. Thisforced power drain limits the efficiency of the arrangement of FIG. 33and causes an undesirable rise in the temperature of a battery packbeing bypassed as the resistors 3311-3312 are dissipating as heat thepower that could have otherwise been used to charge the remainingbattery packs.

FIG. 34 shows a second example of balancing battery packs in series.FIG. 34 comprises two or more battery packs 3401-3402 in series asconnected by line 3400. The battery packs 3401-3402 may comprise one ormore switches 3403-3408 that control how power is transmitted to cells3413-3414. For example, each battery pack 3401-3402 may further compriseDC/DC buck converters 3409-3410 that reduces a voltage level of suppliedpower from a high level to a lower level. For instance, when switches3407-3408 are enabled, the supplied power at its full voltage level isapplied to cells 3413-3414. However, when switches 3407-3408 aredisabled, power flows through the DC/DC buck converters 3409-3410 wherethe voltage level of the supplied power is reduced. For instance, asshown in FIG. 34, switch 3408 of battery pack 3402 has been disabled andpower flowing through connector 3400 is routed to DC/DC buck converter3410, where the voltage of the supplied power is reduced, beforecharging cells 3414. As shown in FIG. 34, the battery packs 3401-3402may further comprise bypass circuits 3417-3418 located across the inputand output power supply lines of each battery pack—e.g., before switches3403-3408, before the DC/DC buck converters 3409-3410, and beforeinternal resistances of each battery pack.

As an example, controller 3411 of battery pack 3401 may determine thatcells 3414 have reached a high SOC and should no longer be receivingcharging power. To permit the cells 3414 of the remaining battery pack3402 to be charged, the controller 3411 may enable switch 3417 to permitcharging power to bypass battery pack 3401. Depending on the SOC ofcells 3414, the controller 3412 of battery pack 3402 may selectivelycontrol one or more of switches 3404, 3406, 3408, and/or 3418 to controlthe power being applied to cells 3414. For instance, if the SOC of cells3414 is low, switches 3404, 3406, and 3408 may be enabled to allow thecells to be charged at the full voltage received by battery pack 3402.Additionally or alternatively, if the SOC of cells 3414 is at a mediumlevel, switches 3404 and 3406 may be enabled while switch 3408 isdisabled, thereby routing power through the DC/DC buck converter 3410 toreduce the voltage level of the supplied power from the received voltagelevel to a lower voltage level for charging the battery cells 3414.Additionally or alternatively, if the SOC of cells 3414 is also at ahigh level like the SOC of cells 3413, bypass circuit 3418 may also beenabled, permitting the power received by battery pack 3402 to betransmitted to the next battery pack in series. The status of thevarious switches including bypass switches 3417-3418 may be provided bycontrollers 3411-3412 onto the CAN to permit, for instance, the masterbattery pack to provide the SOC of individual battery packs and/or allbattery packs to an external device.

In other words, when two or more battery packs are used in series inFIG. 34 and one pack has a higher voltage than the other pack, then thehigher voltage pack will turn on its bypass circuit and, for example,interact with the master controller of the master battery pack tocontrol the buck circuit of the other battery pack to turn on, therebyproviding a lower voltage to the other battery pack. Here, the buckcharger is used to account for the voltage drop of the bypassed batterypack instead of using the heat dissipating resistors of FIG. 33, therebyreducing an unnecessary rise in temperature of the higher voltagebattery pack. For instance, the battery management system may determineto place battery pack 3401 in bypass mode. To put battery pack 3401 inbypass mode, the BMS may instruct controller 3411 to turn on bypassswitch 3417 in battery pack 3401 and instruct controller 3412 in batterypack 3402 to turn on its buck converter (e.g., DC/DC buck 3410) toprovide a reduced voltage to cells 3414 such that the reduced voltagereflects the voltage drop that would have been seen by battery pack 3402if battery pack 3401 was not in bypass mode and charging cells 3413.

FIG. 34B shows an alternative to the second example of balancing batterypacks in series. In FIG. 34B, the bypass circuits 3417-3418 have beenremoved and replaced by bypass circuits 3421 (in battery pack 3401) and3422 (in battery pack 3402). For reference, the bypass circuits3421-3422 are shown to in FIG. 34B as “Bypass with Buck”. As shown inbypass circuit 3421, a first switch 3423 may be placed in the conductionpath between the output of the DC/DC buck converter 3409 and the cells3413. Another switch 3424 may be placed between the output of the DC/DCbuck converter 3409 and the output terminal of battery pack 3401. In oneexample, switches 3423 and 3424 may be of an opposite polarity to permita single control line from controller 3411. In other examples, theswitches 3423 and 3424 may be of the same polarity and controlled byseparate control lines from controller 3411. Other variations arepossible including one or more of the switches via different sources. Ina normal charging operation, switch 3407 may be controlled to permit thecharging voltage at its full range to charge cells 3413. In a buckconverter mode, switch 3407 may be turned off, DC/DC buck converter 3409turned on, switch 3424 turned off, and switch 3423 turned on to permit alower voltage from the DC/DC buck converter 3409 to charge the cells3413. To put battery pack 3401 in bypass mode, the BMS may instructcontroller 3411 to turn off switch 3407, turn on DC/DC buck converter3409, turn off switch 3423 turned off, and turn on switch 3424 to permita lower voltage from the DC/DC buck converter 3409 to be output, viaconnector 3400, to battery pack 3402. Alternatively or additionally,bypass circuits 3421 and 3422 may also include one or more PTCs tofurther reduce voltages as temperatures of the battery packs increase.

In short, in FIG. 34B, to place battery pack 3401 in bypass mode, theBMS instructs only battery pack 3401 to modify its operations. Incontrast, in FIG. 34A, to place battery pack 3401 in bypass mode, theBMS instructs battery pack 3401 to modify its operations to enable thebypass circuit 3417 as well as instructs battery pack 3402 to turn onits DC/DC buck converter 3410 (and also turn off switch 3408).

FIG. 35 shows a bypass circuit for battery packs in series. FIG. 35shows an example of a battery pack 3501 with a bypass circuit 3502. Thebattery pack 3501 receives power across power terminals 3503 and 3504.Received power may be provided to the rest of the battery pack 3501 byconnections 3505 and 3506. The bypass circuit 3502 may comprise apositive temperature control (PTC) thermistor 3507 in series with one ormore switches 3508-3509. An advantage of using PTC thermistor 3507includes controlling the power provided to other battery packs based ona temperature of a current battery pack. For instance, if a currentbattery pack is relatively cool, the PTC thermistor 3507 may onlyprovide a limited resistance to the power being provided to otherbattery packs. Alternatively, if a current battery pack is relativelywarm or hot, the PTC thermistor 3507 provides an increased resistance tothe current flow and provides a greater voltage drop across the PTCthermistor 3507, thereby reducing the voltage of power being supplied tothe next battery pack. Accordingly, the inclusion of the PTC thermistor3507 may help accommodate battery packs of different temperatures asbeing charged to help cool a charging environment where one or more ofthe battery packs is relatively hot while also permitting a fastercharging of other battery packs when a bypassed pack is relatively cool.

FIG. 35 shows switches 3508 and 3509 in a series connection between PTC3507 and power terminal 3506. When a controller 3521 outputs a highsignal to enable one or more switches 3508-3509, the high signal passesthrough resistor 3522 to enable switch 3518, whose gait is normally heldlow by pulldown resistor 3519. Upon switch 3518 being enabled, gates ofopposite polarity transistors 3513 and 3514 are raised to high level. Inthe example of FIG. 35, switch 3513 is shown as a p-type MOSFET that isnormally on when its gate is at a low level and switch 3514 is shown asan n-type MOSFET that is normally off when gate is at the low level.When switch 3518 is off, pulldown resistor 3516 pulls the gates of thep-type MOSFET 3513 and the n-type MOSFET 3514 to a low level, therebyturning off switch 3514 and turning on switch 3513. When switch 3518 isoff, the gates of switches 3513 and 3514 are high, resulting in anoutput level between the switches (e.g., above diode 3512) to be low,thereby turning off switches 3508 and 3509. When switch 3518 is on, thegates of switches 3513 and 3514 are low, resulting in the output beinghigh, thereby turning on switches 3508 and 3509. As shown in FIG. 35,various pull-up and pulldown resistors as well as biasing diodes areshown. It is appreciated that the values and locations of the resistors3520, 3519, 3516, 3015, 3511, and 3510 and/or locations of the diodes3512 and 3517 may be adjusted to properly bias the switches of FIG. 35.

FIG. 36 shows a first example of detecting an arrangement of batteries.FIG. 36 comprises batteries 3601 and 3602 that may be in a seriesarrangement or in a parallel arrangement. With additional batteries,additional arrangements may be possible. FIG. 36 further comprises abattery configuration detector 3605 and a battery configuration detector3606, e.g., one for each battery). FIG. 36 further includes a controller3603 connected to CAN 3607 and receiving, as inputs, outputs of each ofthe battery configuration detectors 3605-3606. Each batteryconfiguration detector 3605-3606 may include a first terminal (shown inFIG. 36 as terminal A) connected to a battery, a second terminal (shownin FIG. 36 as terminal B), and an output terminal (shown in FIG. 36 asterminal D). Based on interactions between battery configurationdetector 3605 and 3606 via connected terminals B, the batteryconfiguration detectors 3505 and 3506 may indicate to controller 3603information regarding the arrangement of the batteries 3601-3602. Eachbattery configuration detector may be configured to provide an outputbased on whether current flows through connecting terminal B. If nocurrent flows, then the batteries may be determined to be in parallel.If current flows through at least one terminal B, then the batteries maybe determined to be in series.

FIGS. 37A, 37B, and 37C show an example circuit for the configurationdetectors and operations when the batteries are in serial or inparallel. In FIG. 37A, battery configuration detector circuits 3705 and3706 provide information regarding how battery packs 3707-3708 arearranged. As with FIG. 36, each battery configuration detector 3705-3706includes terminals A connected to respective batteries 1 and 2,3701-3702, terminals B connected to other terminals B of the batteryconfiguration detectors 3705-3706, and output terminals D connected tocontroller 3703. Controller 3703 is also connected to CAN 3725.Controller 3703 is shown as a single controller in FIG. 37A as it may bea single controller, a controller in each battery pack, and/or a singlecontroller in each battery pack and an extra controller that integrateseach battery pack's controller. In various examples, the CAN may connecteach controller together.

The battery configuration detectors 3705-3706 contain a diode andresistor series pair 3709, 3707 and 3710, 3708 between terminal B andterminal A and diodes 3711, 3712 between internal nodes C and terminalsB. Internal nodes C are located between pull-up resistors 3715, 3716 andpulldown resistors 3713, 3714. For purposes of explanation, resistors3713, 3714 are assumed to be larger than resistors 3715, 3716. Anotherseries connection of a diode and resistor pair 3718, 3720 and 3717, 3719connect the internal nodes C to output terminals D. Pulldown resistor3713 is connected to the negative terminal of battery 1 3701. Pulldownresistor 3714 is connected to the negative terminal of battery 2 3702.

The battery configuration detectors 3705-3706 may be configured toidentify when current flows through each battery configurationdetectors' terminal B. When the output voltage levels at terminals D arethe same, the controller 3703 determines that the batteries are inparallel.

When battery packs 3707, 3708 are in series, current may flow from oneterminal B into another terminal B based on a voltage difference betweenterminals A and B in at least one battery configuration detector. Basedon that current, internal node C drops in voltage based on currentflowing through one of resistor 3715 or 3716. The corresponding outputterminal D of that battery configuration detector. The controller 3703interprets a low terminal D as indicative that the batteries are inseries. Further, battery associated with the low terminal D may beconsidered the first battery in the series connection.

FIG. 37B provides an example of battery configuration detectors 3705 and3706 where the battery packs 3707 and 3708 are in series. Variouscomponents are removed for simplicity from the Figure. For batteryconfiguration detector 3706, its terminal A is connected to the positiveterminal of battery 2 3702. For purposes of explanation, the followingdescribes the negative terminal of battery 2 3702 as at a ground voltagelevel. Because of the series connection of the battery packs 3707 and3708, the negative terminal of battery 1 3701 is assumed to have anegative voltage value. Because terminal A of battery configurationdetector 3705 is at ground (the negative terminal of battery 2 3702)while terminal A of battery configuration detector 3706 is higher thanground, current flows from terminal B of battery configuration detector3706 to terminal B of battery configuration detector 3705. Because theground terminal of resistor 3713 is connected to the negative terminalof battery pack 1 3701 (which is lower in potential than the negativeterminal of battery pack 2 3702), the current flows through diode 3709,resistor 3707, through the common connection of terminal A of batteryconfiguration detector 3705 and the ground of resistor 3714 of batteryconfiguration detector 3706, and pulls down terminal C of batteryconfiguration detector 3706. The current flows across resistor 3716,reducing the voltage of internal node C of battery configurationdetector 3706. As the output terminal D of battery configurationdetector 3706 follows the voltage of internal node C of batteryconfiguration detector 3706, terminal D of battery configurationdetector 3706 is low while terminal D of battery configuration detector3705 is higher. Based on this difference, the controller (not shown) maydetermine that the batteries are in series.

FIG. 37C shows an example of battery configuration detectors 3705 and3706 where the batteries packs 3707 and 3708 are in parallel. Variouscomponents are removed for simplicity from the Figure. For batteryconfiguration detector 3706, its terminal A is connected to the positiveterminals of batteries 1 and 2, 3701 and 3702. For battery configurationdetector 3705, its terminal A is also connected to the positiveterminals of batteries 1 and 2, 3701 and 3702. Because there is nodifference in the relative voltage between terminals A, there is nocurrent flowing across either of resistor 3715 or 3716. As such, thevoltages at output terminals D are the same and both are high.Accordingly, because no output terminal D has a low voltage, thecontroller determines the batteries to be in parallel.

FIG. 38 shows an example of a battery system comprising multiple batterypacks. For example, an end device 3801 is electrically powered by abattery system 3800 that includes a plurality of battery packs 3802,3803, and 3804. Each battery pack 3802, 3803, and 3804 may include itsown internal controller/BMS 3812, 3813, and 3814, respectively. Batterypacks 3802, 3803, and 3804 are electrically connected to a DC power bus3851 that comprises comprising positive and negative connections. The DCpower bus presents a voltage to end device 3801 is essentially the sameas the voltage provided by each parallel connected battery pack 3802,3803, and 3804, while the electrical current supplied to end device 3801is the sum of individual electrical currents provided by each batterypack. Battery system 3800, or portions thereof, may be housed within enddevice 3801, mounted to end device 3801, and/or may be externallysituated with respect to end device 3801. End device 3801 (e.g., a powertool, a lawn mower, a garden tool, an appliance, a vehicle, etc.) maycommunicate to the battery system 3800 via a communication channel 3852.

Battery health is related to a condition of the battery pack and/or acondition required by the end device (e.g., a supplied current). Themaster battery pack 3803 may provide a determination whether presentbattery system conditions are suitable for powering an end device and/oran estimate about a battery pack's useful lifetime for powering the enddevice.

When performing processes associated with battery management, eachbattery pack 3802, 3803, 3804 may receive/send values of at least theSoH from/to other battery packs as will discussed in further detail.Status information, including SoH, may be generated for each batterypack by an integrated controller and/or battery management system(controller/BMS 3812, 3813, and 3814). The controller/BMS 3812, 3813,3814 may include memory storing historical values corresponding tobattery health and/or battery use over time.

Each battery pack 3802, 3803, 3804 includes a BMS (as shown in FIGS. 2Aand 2B) that allows communication between all of the battery packs andend device 3801 over communication channel 3852. As discussed above,communication channel 3852 may comprise a serial communication channel(e.g., a CAN bus) or a parallel communication channel, may a wired,wirelessly connected, or optically connected, and may support one ormore communication protocols (e.g., Ethernet, Industrial Ethernet, CAN,I²C, Microwire, BLE, etc.), and may support synchronous or asynchronouscommunication.

Embodiments may support different messaging protocols. For example, aprotocol may support node to node communication by supporting both asource address and a destination address. The destination address mayspecify a particular node address or may be a global address so that amessage may be broadcast to more than one node. In some cases, aprotocol (such as the CAN protocol, the Modbus protocol, etc.) maysupport only a single source address (e.g., a master address) so thatall nodes may process a message broadcast over a communication channel.Battery packs 3802, 3803, and 3804 may each connect to communicationchannel 3852 in a parallel fashion. However, embodiments may supportdifferent arrangements such as pack-to-pack communication on separatebusses or a daisy chain connection through each battery pack.

Battery packs 3802, 3803, and 3804 may have similar or identicalelectrical and electronic components, such as those as described inreference to FIGS. 2A and 2B. After being inserted into the batterysystem 3800, one of the battery packs (e.g., battery pack 3803) may beconfigured as a master battery pack and one or more battery packs (e.g.,battery pack 3801 and 3804) may be configured as a slave battery pack.Moreover, if a battery pack initially serves as a slave battery pack, itmay subsequently serve as a new master battery pack if the currentmaster battery pack is removed or disabled.

When performing processes associated with battery management, a batterypack may receive or send values of at least the SoH from/to otherbattery packs as discussed in further detail herein. Status informationmay include the SoC information, SoH information, temperatureinformation, charging time information, discharge time information,discharge current information, and/or capacity information of thebattery cells and/or of the battery pack.

SoH does not correspond to particular physical qualities of a battery.Rather SoH is used as a relative measure that reflects a generalcondition of a battery in its current condition in relation to itscondition when new. While methods of calculating SoH differ, algorithmsused to quantify SoH are based on parameters such as internalresistance, voltage, charge acceptance, internal capacitances,self-discharge factors and the like. Because SoH is a measure of thebattery's long-term capacity, SoH provides an indication of the healthof the battery and is not used as an absolute measurement of remainingavailable battery life. In general, SoH provides an indication ofbattery use, rather than being an absolute measure of remainingcapacity. For example, SoH is indicative of internal resistance, batterystorage capacity, battery output voltage, number of charge-dischargecycles, temperature of the battery cells during previous uses, totalenergy charged or discharged, and/or age of the battery cells to derivea value of the SoH.

As discussed above, SoC provides a measure of short-term capacity of abattery, such as an indication of the level of charge, in relation tothe battery's capacity, during charge and discharge cycles. As such, SoCmay be obtained from different battery backs of the battery system andused to manage charge balancing between the different battery packs toensure sufficient energy is available to power the end device.Similarly, SoH may be used for monitoring and/or managing utilization ofthe battery packs 3802, 3803, and 3804 during long-term use of thebattery system 3800. For example, SoH may be used to provide anindication of the performance of each battery pack with respect to otherbattery packs of the battery system 3800. In doing so, SoH may be usedto provide a relative measure of whether a battery pack 3802 isproviding more current than another battery pack of the battery system3800.

Additionally, by monitoring SoH values of the different battery packs ofthe battery system 3800 over time, the master battery pack may be ableto predict an upcoming failure of a particular battery pack before thefailure occurs, which may allow the master battery pack to initiatepreemptive measures to avoid a catastrophic failure causing shutdown ofthe end device. Additionally, historical records of SoH values forbattery systems may allow for improvements for troubleshooting andidentifying which battery pack of the battery system experienced (or ispredicted to experience) a failure.

The controller/BMS 3812, 3813, and 3814 calculates the SoH of itsrespective battery pack 3802, 3803, and 3804 based on an algorithm,which may be proprietary to a BMS chipset manufacturer. Because noconsensus exists regarding SoH calculation, SoH values may differ basedon the particular algorithm used for calculations. As such, differentmanufacturers and/or BMS chipset providers may use different algorithmswhich may result in differences in the resulting SoH values.Additionally, characteristics of different battery types, batterychemistries, battery packages, manufacturers may also affect the SoHcalculation.

SoH determination algorithms may utilize one or more parameters and/orbattery characteristics that change with age, such as battery cellresistance, impedance or conductance, can be used as a basis forproviding an indication of the SOH of the cell. Changes to these batterycharacteristics signify that other changes have occurred which may be ofmore importance to the user. These could be changes to the externalbattery performance such as the loss of rated capacity or increasedtemperature rise during operation or internal changes such as corrosion.Because SoH is relative to the condition of the battery when new, thecontroller/BMS 3812, 3813, and 3814 stores a record of an initialbattery pack condition and/or a standard condition of a battery pack ortype of battery pack. Thus if battery pack impedance is a characteristicof interest, the controller/BMS 3812, 3813, and 3814 may generate animpedance record including, at least, an impedance value correspondingto a new battery pack. Other characteristics may also be considered whendetermining SoH, including, for example, a count of charge/dischargecycles of each battery pack.

Some SoH determination algorithms may be calculated based onmeasurements of one or more battery pack characteristics (e.g.,impedance, conductance, etc.). While SoH algorithms may be proprietaryto a BMS chipset manufacturer, the SoH value received from a batterypack may be used to provide an estimate of one or more battery packcharacteristics, such as impedance. As the battery pack's SoH changesover time, estimates of the changing battery characteristics may bemonitored and/or used to predict an operating condition of the batterypack. As such, SoH may be used to determine a battery packcharacteristic (e.g., impedance) that may be used, in turn, formonitoring a present operational state and/or for predicting a futurecondition of each battery pack 3802, 3803, and 3804 of battery system3800.

Impedance is a useful characteristic and corresponds to an operationalcondition of the battery pack and, over time, may be representative of aweakening battery and/or an indicator of general deterioration of thebattery pack. Impedance of a battery pack, as an AC measurement, isassociated to a particular test frequency (e.g., 1 kHz, etc.) and isexpressed in milliohms (mOhm). While impedance may be directly measured,such measurements require an addition of an AC test source, which may ormay not be compatible with the end device and may add an additionalcost, weight and/or complexity to each battery pack. As such, acontroller, such as the controller/BMS 3813 of master battery pack 3803,may obtain SoH values calculated by each battery pack of the batterysystem 3800 and use the SoH values to determine characteristics, currentoperating conditions and/or a predicted condition of each battery pack3802, 3803, and 3804.

SoH of a battery pack may be defined over a range of values (e.g.,0-100), where full SoH (e.g., 100) corresponds to a new battery pack andSoH of under a specified value (e.g., 0, under 5, under 10, etc.) maycorrespond to a failed battery pack. By comparing the SoH of the batterypacks 3802, 3803, and 3804 of battery system 3800, to each other and/orto a SoH threshold, the master battery pack 3803 may determine arelative age of each battery pack 3802, 3803, and 3804. For example,when each battery pack have a same SoH, (or are within a defined rangee.g., +/−5%) the battery packs may be the same age. A greater SoHbetween battery packs may be representative of a new battery pack beingadded or otherwise activated.

In an illustrative example, when battery system 3800 includes batterypacks of a similar age, the SoH of each battery pack 3802 (SoH₁=85),3803 (SoH₂=86), and 3804 (SoH_(n)=84) may be the same or substantiallysimilar. However, when a replacement for a failed battery pack is added(or a new pack is activated), the SoH value for the newly added pack maybe substantially different from the SoH value(s) of the existing batterypacks. For example, battery packs 3802 and 3803 may have beenoperational for some time and battery pack 3804 may have been added toreplace a failed battery pack. Here, the SoH of battery packs 3802 and2803 may be near 75, while the newly added pack 3804 may have a SoH of(or near) 100. In some cases, a newly added pack may be a previouslyused battery pack and may have a lower SoH corresponding to the age ofthe pack (e.g., 92, 85, 74, 68, etc.) In some cases, the battery system3800 may include one or more spare or otherwise disabled battery packs,such as an activated pack that has been previously operated anddisabled. This older pack may have a SoH less than the SoH of otheractive battery packs of battery system 3800 (e.g., 62).

Impedance of the battery packs may be determined from the SoH values ofeach battery pack, such as by use of an equation, a lookup table, etc.Equations and/or lookup tables provided in memory of each battery pack3802, 3803, and 3804. Lookup table values may be predetermined (e.g.,determine experimentally, pre-calculated, etc.) and stored in memory ofthe controller/BMS. Memory of the controller/BMS 3812, 3813, and 3814may store multiple lookup tables, where each table may be associatedwith a particular battery pack type, battery cell package, batterychemistry, manufacturer, etc. The controller/BMS 3812, 3813, and 3814may identify a particular table for use by a pack identifier that may bestored locally to the battery pack (e.g., memory of the master batterypack 3802) and/or battery pack identifier(s) received via thecommunication channel 3852 from the other battery packs 3802 and 3804 ofthe battery system 3800. For example, master battery pack 3802 mayobtain SoH information from each battery pack of battery system 3800.For example, master battery pack 3802 may receive SoH values via thecommunication channel 3852 (e.g., a CAN bus) and its own SoH value vialocal communication buses or memory.

Using the determined inductances of each battery pack 3802, 3803, and3804, the master battery pack 3803 may calculate an indication of healthof battery system 3800. For example, the master battery pack 3803 maycalculate a “virtual” current of the battery system based on the batterypack voltage and battery pack impedances. For example, referring to FIG.38, a battery system virtual output current (I_(d)) provided to enddevice 3801 may be a combination of the virtual output currents (e.g., asum of I_(d1), I_(d), and I_(d4)). When battery system 3800 includesbattery packs having the same or similar age, the virtual currents fromeach battery pack will provide an approximately equal virtual currentcontribution. However, when battery packs have a more significant agedifference (e.g., a SoH difference greater than a threshold, such as+/−10%), the difference in battery pack impedance may cause anunbalanced virtual current contribution from each battery pack 3802,3803, and 3804. When the current contributions are unbalanced, thebattery pack (or packs) providing a greater virtual current to the load(e.g., end device 3801) may reach a failure condition before the batterypacks providing a lower current value.

Tables 4-6 show illustrative SoH values obtained from battery packs3802, 3803, and 3804 and a relationship of the SoH values to batterypack impedance and virtual system currents for battery system 3800.

TABLE 4 Battery Packs of a Same Age and a Spare Pack SoH Pack ImpedanceVirtual Current 3802 75 30 mOhm  5 A 3803 (master) 75 30 mOhm  5 A 3804(spare) 63 31 mOhm N/A (end device) 10 A

As can be seen, the SoH of the three battery packs 3802 and 3803 aresubstantially similar, thus the pack impedance and virtual currentssourced by each battery pack are also substantially similar. Because allactive battery packs 3802 and 3803 are sourcing equal or approximatelyequal currents to end device 3801, the master battery pack 3803 may notmonitor the virtual current output or communicate the virtual loadcurrent via the communication channel 3852. In some cases, the masterbattery pack 3803 may communicate an indication of the virtual loadcurrent (e.g., 10 A) via the communication channel 3852

TABLE 5 Battery Packs with a new Replacement Pack and a Spare Pack SoHPack Impedance Virtual Current 3802 (replacement) 100 20 mOhm 5.2 A 3803(master) 75 30 mOhm 4.8 A 3804 (spare) 63 31 mOhm N/A (end device) 10 A

Table 5 shows, after a battery pack failure, a new battery pack 3802 isadded to the battery system 3800 and has a SoH of 100, while the olderbattery pack 3803 has a lower SoH of 75. In this illustrative example,the older battery pack 3803 may have a higher pack impedance (30 mOhm)and the new battery pack has a lower impedance (20 mOhm). Because of theimpedance difference, the newer replacement battery pack 3802 may sourcea higher virtual current (e.g., 5.2 A) vs the older battery pack 3803(e.g., 4.8 A). Because of this current imbalance, the older pack mayprovide a greater current contribution to the end device 3801 thanbattery pack 3803. A SoH imbalance (e.g., a difference greater than adifference threshold) may be indicative of situation where a newerbattery pack (one with a higher SoH) sources more current than olderbattery packs. As such, the master battery pack 3803 may enable SoHmonitoring when a SoH difference is greater than a difference threshold.When SoH monitoring is enabled, the master battery pack 3803 maycommunicate the virtual load current to the end device and, optionally,an indication of the highest current sourced from the battery packhaving the highest SoH value (e.g., 5.2 A). A battery pack may have oneor more defined current thresholds (e.g., a maximum current threshold, acurrent warning threshold, etc.). The master battery pack mayadditionally monitor the virtual output currents sourced by the newestbattery pack in such situations because the higher currents may causethe replacement battery pack 3802 to fail faster than the older batterypack 3803. In the illustrative example, the old battery pack 3803 maysource 4.8 A, of a 10 A virtual load current, while the replacementbattery pack 3802 may source 5.2 A. However, this 5.2 A may besubstantially closer to a current limit (e.g., 5.3 A).

Operation at or near a current limit may cause the battery pack 3803 tofail before the older battery pack 3802 and/or may cause the replacementbattery pack 3802 to age faster. Additionally, the virtual outputcurrent of the battery pack 3802 (e.g., 5.2) may be greater than athreshold (e.g., a current warning condition), where operation maycontinue, but the master battery pack 3803 may augment the communicationto include both the virtual load current (e.g., 10 A) and the highervirtual battery pack output current (5.2 A), along with an identifier ofthe battery pack 3802 subject to the current warning condition. Thesecurrents may be logged and/or otherwise monitored for further errorprediction and/or future troubleshooting. In addition, when a currentwarning condition is communicated, the information may be used totrigger presentation of a current warning indication via a visual output(e.g., a display, a light emitting diode (LED), etc.) at the end deviceand/or on one or more battery packs. The warning indication may includeone or more of a warning indicator, a battery pack identifierindication, a current value, etc. In some cases, the identification of abattery pack sourcing a higher current (e.g., outside a range, near acurrent threshold) than other battery packs in the system may bepredictive of a future failure condition.

TABLE 6 Battery Packs with an Enabled Spare Pack Pack SoH Pack ImpedanceVirtual Current 3802 (spare) 100 20 mOhm N/A 3803 (master) 75 30 mOhm5.1 A 3804 (re-enabled) 63 31 mOhm 4.9 A (end device)  10 A

Table 6 shows an illustrative example, where an older spare battery pack3804 may be enabled after a pack failure of pack 3802 (which may or maynot be replaced with a spare new battery pack). Here, the olderre-enabled battery back 3804 (e.g., 63) may have a lower SoH than theexisting master battery pack 3803 (e.g., 75). Here the SoH differential(e.g., 12) between the two active battery packs may be greater than athreshold (e.g., 10), so that the master enables SoH monitoring andenables communication of the virtual load current via the communicationchannel 3852. However, the virtual output currents of both battery packs3803 and 3804 may be outside of a threshold range or under a thresholdcondition. As such, SoH-based monitoring of the operation of the batterysystem 3800 continues. A visual indicator that SoH monitoring may beprovided to the user via an LED, a display or the like. Additionally,logging of SoH monitoring information may be performed for use introubleshooting and/or other processes to predict a future failure of abattery pack.

TABLE 7 Battery Packs with a new Replacement Pack and a Spare Pack SoHPack Impedance Virtual Current 3802 (replacement) 100 20 mOhm 4.1  3803(master) 65 31 mOhm 3.1 A 3804 (re-enabled) 63 32 mOhm 2.8 A (enddevice)  10 A

Table 7 shows an illustrative case where a new replacement pack 3802(e.g., SoH=100) and an older spare battery pack (e.g., SoH=63) isre-enabled. Here, the SoH differential is large (e.g., 37), so that SoHmonitoring may be enabled. Here, the existing master battery pack 3803may have aged additionally, such that if only replacement battery pack3802 and master battery pack 3803 are enabled, the virtual currentoutput by the replacement battery pack may be at or near the currentlimit defined for the battery system, thereby causing the battery systemto fault before causing a catastrophic failure of the new replacementbattery pack 3802. However, by adding additional capacity to the batterysystem, by enabling a spare battery pack 3804, even if older than otherbattery packs in battery system 3800.

Controller/BMS 3813 (and/or controller/BMS 3812 and 3814) may supportbattery management processes (for example, processes 3900, 4000, and4000 of FIGS. 38, 40, and 41, respectively) discussed herein.Controller/BMS 3813 may control the overall operation of battery pack3803 and its associated components. Controller/BMS 3813 may access andexecute computer readable instructions from a (e.g., memory device 202of FIG. 2A), which may assume a variety of computer readable media. Forexample, computer readable media may be any available media that may beaccessed by controller/BMS 3813 and may include both volatile andnonvolatile media and removable and non-removable media. By way ofexample, and not limitation, computer readable media may comprise acombination of computer storage media and communication media.

Computer storage media may include volatile and nonvolatile andremovable and non-removable media implemented in any method ortechnology for storage of information such as computer readableinstructions, data structures, program modules or other data. Computerstorage media include, but is not limited to, random access memory(RAM), read only memory (ROM), electronically erasable programmable readonly memory (EEPROM), flash memory or other memory technology, CD-ROM,digital versatile disks (DVD) or other optical disk storage, magneticcassettes, magnetic tape, magnetic disk storage or other magneticstorage devices, or any other medium that can be used to store thedesired information and that can be accessed by the computing device.

Communication media may include computer readable instructions, datastructures, program modules or other data in a modulated data signalsuch as a carrier wave or other transport mechanism and includes anyinformation delivery media. Modulated data signal can be a signal thathas one or more of its characteristics set or changed in such a manneras to encode information in the signal. By way of example, and notlimitation, communication media may include wired media, such as a wirednetwork or direct-wired connection, and wireless media such as acoustic,RF, infrared and other wireless media.

While controller/BMS 3813 and a communication channel interface circuit(e.g., communication channel interface circuit 205) may be powered bybattery cells of battery pack 3803, embodiments may have a separatepower source. Consequently, battery pack 3803 may continue to interactwith the other battery packs over the communication channel regardlessof the status of battery cells.

A CAN bus may enable messages to flow among a plurality of battery packsin accordance with an embodiment. The CAN bus is sometimes referred toas a broadcast type of bus, where each message contains a source address(for example, a device ID) but might only optionally include adestination address. The CAN bus may convey SoH information when a slavebattery pack sends status information back to the master battery pack.

As used herein, the term “virtual current” may be understood as thecurrent from a pack as adjusted for an internal impedance of eachbattery pack (i.e., capacitive/inductive effects of each battery pack).Additionally or alternatively, the term “virtual current” may beunderstood as an “anticipated maximum” current based solely on theinternal impedance associated with the battery pack and ignoring currentlimiting effects of a load—e.g., a short circuit peak, instantaneouscurrent.

FIG. 39 shows a flow chart of a first example of monitoring andresponding to changes in states of health of battery packs. In step3901, battery pack status information is gathered. The informationgathered may comprise identification information of each battery pack,SoH information, of each battery pack, SoC information of each batterypack, and the like. In step 3902, the system determines whether adifference in SoH between any two battery packs exceeds (or is equal to)a difference threshold. If the difference in SoH across all batterypacks is less than the difference threshold, then, in step 3903, thepacks are discharged as normal to power an end device.

If the SoH difference between any two battery packs is greater than orequal to the SoH difference threshold, then the system determines, instep 3904, the impedance of each battery pack. For instance, theimpedance of each battery pack may be determined through a variety ofprocesses including, but not limited to, determining a current through aload of a known value while determining the voltage across the load (andsolving for an internal impedance of the battery pack using a ThéveninEquivalent model or a Norton Equivalent model). Other algorithmic-basedprocesses are possible and considered within the scope of thisdisclosure. Additionally or alternatively, the system may look up in atable of known impedances the SoH of each battery pack to obtain animpedance for each battery pack. Based on the determined impedance fromstep 3904, a virtual current that may be provided by each pack isdetermined in step 3905. The determination of the virtual current may bebased on a direct measurement and/or based on looking up the impedancein a table of impedances and retrieving a virtual current for eachimpedance.

In step 3906, the system determines the total virtual current providableby the battery system. In step 3907, the system generates a messageindicating the virtual battery system current. In step 3908, the systemdetermines whether a virtual current from any of the battery packsexceeds an individual pack warning threshold and/or whether the combinedvirtual current from the battery packs exceeds a combined pack warningthreshold. The determination of step 3908 may relate to eitherindividual pack warning threshold or the combined pack warning thresholdor both. If one threshold is not met (if only one threshold is compared)or if both thresholds are not met (if both thresholds are beingcompared), then in step 3909, the message is sent via the communicationchannel. If one or more of the thresholds are met in step 3908, then instep 3910, the message is augmented with the specific pack currentand/or combined pack currents. In step 3911, the system determinewhether the battery pack virtual current exceeds an error threshold. Ifthe threshold is not exceeded by the battery pack virtual current, thenin step 3912, the system triggers a warning notification output and thensends the notification, in step 3909, via the communication channel. Ifthe threshold is exceeded in step 3911, then the system initiates afault recovery process (as described herein) in step 3913. The faultprocess may comprise reducing power output from the battery packs,limiting a maximum current from the battery packs, limiting a maximumvoltage from the battery packs, disabling one or more battery packswhile permitting other battery packs to operate, swapping one or morebattery packs for spare battery packs, and the like.

FIG. 40 shows a flow chart of a second example of monitoring andresponding to changes in states of health of battery packs. In step4001, pack virtual output currents are calculated without the failingpack. In step 4002, the system determines whether operation with thedisabled pack is possible (e.g., whether a minimum desired current ispossible without the failing pack). If the system is operational withoutthe failing pack, then in step 4003 the system disables the failing packand continues operation. If the systems is not operational without thefailing pack as determined in step 4002, then in step 410 the systemdetermines whether one or more extra packs are available. If one or moreextra packs are available, in step 4011 the system obtains the SoHvalues of the one or more battery packs and determines their impedances.In step 4012, the system calculates the pack virtual output currents forone or more combinations of the pack or packs. In step 4013, the systemdetermines whether operation with the failing pack and the new pack orpacks is possible. If operation is possible (e.g., meeting a minimumdesired current), the system enables the new pack and continuesoperation in step 4014. If operation with the failing pack and the newpack is not possible as determined in step 4013, the system determineswhether operation is possible by disabling the failing pack and enablingthe new pack. If operation is possible, then in step 4016, the systemdisables the failing pack and, in step 4014, enables the new pack andcontinues operation.

If no packs are available (from step 4010) or operation is not possiblewith the failing pack (from step 4015), then the system determineswhether operation in a degraded mode is possible in step 4020. Ifoperation is possible, then in step 4021 the failing pack is disabledand the end device is informed of the possibility of operation in thedegraded mode (and awaits instructions and continues operation asinstructed). If operation is not possible in the degraded mode from step4020, then the system initiates shutdown of the end device in step 4022.

FIG. 41 shows a flow chart of a third example of monitoring andresponding to changes in states of heath of battery packs. In step 4101,the system determines the maximum discharge current from an array ofbattery packs. In step 4102, the system gathers the state of health foreach pack at a first time. In step 4103, the system determines whether adifference between the states of health of any two packs are greaterthan a pack difference threshold. If the difference between the statesof health of all packs are less than the pack difference threshold thenin step 4104, the system sends the maximum discharge current of thearray of battery packs to an external device. If at least two batterypacks have a difference in states of health that is greater than thepack difference threshold as determined in step 4103, then the systemsends an individual maximum discharge current in step 4105. Theindividual maximum discharge current may be for each battery pack, for abattery pack with a highest state of health, or a combination of batterypacks.

In step 4106, the battery packs are discharged. In step 4107, the statesof health are gathered for each pack at a second time. In step 4108, thesystem determines, for each pack, a difference between the first timestate of health and the second time state of health. In step 4113, thesystem determines whether a change in the per-pack states of healthexceeds a change threshold. If all changes in the states of health ofthe battery packs are below the state of health change threshold fromstep 4113, then in step 4110, the system continues to monitor the statesof health for each battery pack.

From step 4113, if a change in the states of health for any pack exceedsthe state of health change threshold, then in step 4114, the systemidentifies a possible upcoming fault with the specific pack having thestate of health change greater than the state of health changethreshold. The identification may be maintained in the master batterypack, distributed to all battery packs, and/or sent to the externaldevice. Next, the system continues to monitor the states of health forall battery packs in step 4110.

While monitoring the states of health for the battery packs from step4110, the system checks for faults in battery packs. In step 4111, if afault is detected, the system generates an alert regarding the fault. Insome examples, the battery pack having created the fault may be knownand provided to the external device. Additionally or alternatively, thebattery pack that created the fault may not be known. To permit the userto identify which battery pack may have created the fault, in step 4112,the system may identify the pack and/or packs with their changes intheir states of health. For instance, the states of health and/orchanges in states of health for all battery packs may be provided to theexternal device Additionally or alternatively, only those packs thathave experienced a larger change in state of health may be identified.If no false detected in step 4111, then the system continues to monitorfor differences in the states of health in step 4108.

Additionally or alternatively, fault may be detected in step 4111 (viathe broken line output from step 4106 without monitoring the states ofhealth for each pack (e.g., without repeatedly performing step 4107).Rather while discharging packs from step 4106, the system may monitor instep 4111 for faults. If faults are detected in step 4111, alerts aregenerated in step 4112 including changes in states of health information(e.g., determined while the battery packs are discharging and/orindependently of when the battery packs discharge). If no-fault detectedin step 4111, the system may gather the states of health for the packsat that time in step 4107 (e.g., shown by the broken line from step 4111to step 4107).

Many illustrative embodiments are listed below in accordance with one ormore aspects disclosed herein. Although many of the embodiments listedbelow are described as depending from other embodiments, thedependencies are not so limited.

For example, embodiment #5 (below) is expressly described asincorporating the features of embodiment #1 (below), however, thedisclosure is not so limited. For example, embodiment #5 may depend anyone or more of the preceding embodiments (i.e., embodiment #1,embodiment #2, embodiment #3, and/or embodiment #4). Moreover, that anyone or more of embodiments #2-#12 may be incorporated into embodiment #1is contemplated by this disclosure. Likewise, any of embodiments #1, 14,17, 22 may be combined with one or more of the features recited inembodiments #2-13, 15-16, 18-21, and/or 23-26. Further likewise, any ofembodiments #27, 39, 43 may be combined with one or more of the featuresrecited in embodiments #28-38, 40-42, 44-46. Further likewise, any ofembodiments #47, 59, 64 may be combined with one or more of the featuresrecited in embodiments #48-58, 60-63, 65-69. Further likewise, any ofembodiments #70, 87, 92 may be combined with one or more of the featuresrecited in embodiments #71-86, 88-91, 93-94. Further likewise, any ofembodiments #95, 105, 109 may be combined with one or more of thefeatures recited in embodiments #96-104, 106-108, 110-114. Furtherlikewise, any of embodiments #116 and #125 may be combined with one ormore of the features recited in embodiments #117-124 and 126-135.Further likewise, any of embodiments #136 and #146 may be combined withone or more of the features recited in embodiments #137-145 and#147-155. Further likewise, any of embodiments #156 and #166 may becombined with one or more of the features recited in embodiments#157-165 and #167-171. Further likewise, any of embodiments #172 and#183 may be combined with one or more of the features recited inembodiments #173-182 and #184-189. Further likewise, any of embodiments#190, #205, and #209 may be combined with one or more of the featuresrecited in embodiments #191-204 and #206-208. In addition, that any oneor more of the features in embodiments #1, 14, 17, 22, 27, 39, 43, 47,59, 64, 70, 87, 92, 95, 105, 109, 116, 125, 136, 146, 156, 166, 172,183, 190, 205, and 209 may be combined is contemplated by thisdisclosure. Moreover, that any one or more of the features inembodiments #1-209 can be combined is contemplated by this disclosure.

Embodiment #1. A first battery pack configured for installation in abattery system for electrically powering an end device, wherein allinstalled battery packs installed in the battery system havesubstantially identical electrical and electronic components, the firstbattery pack comprising:

a communication interface circuit configured to interface to acommunication channel;

a power bus interface circuit configured to interface with a power busand to provide electrical power to the end device;

a controller comprising at least one processor; and

a memory storing controller instructions that, when executed by the atleast one processor, cause the controller to:

-   -   obtain a configuration list of installed battery packs in the        battery system, wherein a first entry corresponds to the first        battery pack;    -   when the first entry of the configuration list has a top        priority position in the configuration list, configure the first        battery pack to serve as a master battery pack of the battery        system, wherein the top priority position is indicative that the        first battery pack was installed before any other active battery        packs in the battery system;    -   revise the configuration list when a second battery pack is        installed or removed from the battery system; and    -   repetitively broadcast the configuration list to all said        installed battery packs over the communication channel via the        communication interface circuit.        Embodiment #2. The first battery pack of Embodiment #1, wherein        the controller instructions, when executed by the at least one        processor, further cause the controller to:    -   when a third battery pack is added to the battery system, detect        an insertion of the third battery pack; and    -   create a third entry for the third battery pack in the        configuration list, wherein the third entry is at a bottom        position of the configuration list.        Embodiment #3. The first battery pack of Embodiment #2, wherein        the controller instructions, when executed by the at least one        processor, further cause the controller to:    -   when the second battery pack is removed from the battery system,        detect removal of the second battery pack; and    -   delete a second entry for the second battery pack in the        configuration list.        Embodiment #4. The first battery pack of Embodiment #3, wherein        the controller instructions, when executed by the at least one        processor, further cause the controller to:    -   advance a list position of the third entry for the third battery        pack in the configuration list.        Embodiment #5. The first battery pack of Embodiment #1, wherein        the controller instructions, when executed by the at least one        processor, further cause the controller to:    -   when the first entry for the first battery pack is not at the        top priority position in the configuration list, configure the        first battery pack to serve as a first slave battery pack.        Embodiment #6. The first battery pack of Embodiment #5, wherein        the controller instructions, when executed by the at least one        processor, further cause the controller to:    -   when another battery pack is removed from the battery system and        the first entry moves to the top priority position of the        configuration list, configure the first battery pack to serve as        the master battery pack.        Embodiment #7. The first battery pack of Embodiment #1, wherein        the communication channel comprises a controller area network        (CAN) bus and wherein the controller instructions, when executed        by the at least one processor, further cause the controller to:    -   utilize a SAE J1939 Address Claim Procedure to obtain an        identification (ID) for the first battery pack, wherein the ID        is included in the first entry.        Embodiment #8. The first battery pack of Embodiment #5, wherein        the controller instructions, when executed by the at least one        processor, further cause the controller to:    -   when the first battery pack serves as the first slave battery        pack:    -   receive a first request from the master battery pack; and    -   in response to the receiving the first request, respond to the        first request from the master battery pack.        Embodiment #9. The first battery pack of Embodiment #1, wherein        the controller instructions, when executed by the at least one        processor, further cause the controller to:

when the first battery pack serves as the master battery pack:

-   -   send a second request to a second slave battery pack; and    -   in response to the sending, receive a response message from the        second slave battery pack.        Embodiment #10. The first battery pack of Embodiment #1, wherein        the controller instructions, when executed by the at least one        processor, further cause the controller to:    -   when the first battery pack is removed from the battery system        and reinserted into the battery system, send a join request over        the communication channel; and    -   receive the configuration list with a fourth entry at a bottom        position in the configuration list, wherein the fourth entry is        associated with the first battery pack.        Embodiment #11. The first battery pack of Embodiment #1, the        first battery pack comprising non-volatile memory and wherein        the controller instructions, when executed by the at least one        processor, further cause the controller to:    -   store battery pack information in the non-volatile memory; and    -   when the first battery pack is removed from the battery system        and reinserted tin to the battery system, retain the battery        pack information.        Embodiment #12. The first battery pack of Embodiment #2, wherein        the controller instructions, when executed by the at least one        processor, further cause the controller to:

when the first battery pack serves as the master battery pack:

-   -   send a repetitive broadcast message to all said installed        battery packs over the communication channel via the        communication interface circuit; and    -   when a repetitive broadcast message is not received from the        third battery pack, remove the third entry from the        configuration list.        Embodiment #13. The first battery pack of Embodiment #12,        wherein the repetitive broadcast message is sent periodically        and wherein the controller instructions, when executed by the at        least one processor, further cause the controller to:    -   when a timer set to a predetermined time expires without        receiving the repetitive broadcast message, remove the third        entry from the configuration list.        Embodiment #14. A battery system configured for electrically        powering an end device and comprising a plurality of battery        packs, the battery system comprising:

a first battery pack including:

-   -   a first communication interface circuit configured to interface        to a controller area network (CAN) bus;    -   a first controller comprising at least one processor; and    -   a first memory storing controller instructions that, when        executed by the at least one processor, cause the first        controller to:    -   obtain a configuration list of installed battery packs in the        battery system, wherein a first entry corresponds to the first        battery pack;    -   when the first entry of the configuration list has a top        priority position in the configuration list, configure first        battery pack to serve as a master battery pack of the battery        system, wherein the top priority position is indicative that the        first battery pack was installed before any other active battery        packs in the battery system;    -   when the first battery pack serves as the master battery pack,        revise the configuration list when a third battery pack is        installed or removed from the battery system; and    -   repetitively broadcast the configuration list to all installed        battery packs over the CAN bus via the first communication        interface circuit; and

a second battery pack, wherein the second battery pack has electricaland electronics components identical to the first battery pack.

Embodiment #15. The battery system of Embodiment #14, wherein the secondbattery pack comprises:

-   -   a second communication interface circuit configured to interface        to the controller area network (CAN) bus;    -   a second controller comprising one or more processors; and    -   a second memory storing controller instructions that, when        executed by the one or more processors, cause the second        controller to:        -   obtain the configuration list of the installed battery packs            in the battery system, wherein a second entry corresponds to            the second battery pack;        -   when the second entry of the configuration list has the top            priority position in the configuration list, configure the            second battery pack to serve as the master battery pack of            the battery system, wherein the top priority position is            indicative that the second battery pack was installed before            said any other active battery packs in the battery system;        -   revise the configuration list when the third battery pack is            installed or removed from the battery system; and        -   repetitively broadcast the configuration list to all said            installed battery packs over the CAN bus via the second            communication interface circuit.            Embodiment #16. The battery system of Embodiment #15,            wherein the first controller instructions, when executed by            the one or more processors, further cause the first            controller to:    -   when the second battery pack previously served as the master        battery pack when the first entry is in a second position from        the top priority position in the configuration list, configure        the first battery pack to serve as the master battery pack.        Embodiment #17. A method of powering an end device by a battery        system, the method comprising:    -   obtaining a configuration list of installed battery packs in the        battery system, wherein a first entry corresponds to a first        battery pack;    -   when the first entry of the configuration list has a top        priority position in the configuration list, configuring the        first battery pack to serve as a master battery pack of the        battery system, wherein the top priority position is indicative        that the first battery pack was installed before any other        active battery packs in the battery system;    -   revising the configuration list when a second battery pack is        installed or removed from the battery system; and    -   repetitively broadcasting the configuration list to all        installed battery packs over a communication channel via a        communication interface circuit.        Embodiment #18. The method of Embodiment #17 further comprising:    -   when a third battery pack is added to the battery system,        detecting an insertion of the third battery pack;    -   creating a third entry for the third battery pack in the        configuration list, wherein the third entry is at a bottom        position of the configuration list; and    -   in response to the creating, broadcasting the configuration list        to said all installed battery packs configured in the battery        system via the communication channel.        Embodiment #19. The method of Embodiment #18 further comprising:    -   when the second battery pack is removed from the battery system,        detecting removal of the second battery pack; and    -   deleting a second entry for the second battery pack in the        configuration list.        Embodiment #20. The method of Embodiment #17 further comprising:    -   when the first entry for the first battery pack is not at the        top priority position in the configuration list, configure the        first battery pack to serve as a slave battery pack.        Embodiment #21. The method of Embodiment #20 further comprising:    -   when another battery pack is removed from the battery system and        the first entry moves to the top priority position of the        configuration list, configuring the first battery pack to serve        as the master battery pack.        Embodiment #22. A battery system configured for electrically        powering an end device and comprising a plurality of battery        packs, the battery system comprising:    -   a power bus coupled to the end device to provide electrical        power to the end device;    -   a communication channel coupled to the plurality of battery        packs;    -   a first battery pack including:        -   a first communication interface circuit configured to            interface to the communication channel;        -   a first discharging array;        -   a first processor; and        -   a first memory storing computer-executable instructions            that, when executed by the first processor, cause the first            battery pack to:        -   disable the first discharging array to prevent discharging            onto the power bus from the first battery pack;        -   obtain a first open circuit voltage measurement of the first            battery pack; and        -   share the first open circuit voltage measurement with the            plurality of battery packs via the communication channel;        -   maintain a first copy of a configuration list based on the            first open circuit voltage measurement and shared open            circuit voltage measurements from the plurality of battery            packs; and        -   enable the first discharging array to allow discharging onto            the power bus; and    -   a second battery pack including:        -   a second communication interface circuit configured to            interface to the communication channel;        -   a second discharging array electrically connected to the            power bus of the battery system;        -   a second processor; and        -   a second memory storing computer-executable instructions            that, when executed by the second processor, cause the            second battery pack to:        -   disable the second discharging array to prevent discharging            onto the power bus from the second battery pack;        -   obtain a second open circuit voltage measurement of the            second battery pack; and        -   share the second open circuit voltage measurement with the            plurality of battery packs via the communication channel;        -   maintain a second copy of the configuration list based the            second open circuit voltage measurement and the shared open            circuit voltage measurements from the plurality of battery            packs, wherein the configuration list is ordered based on            decreasing open circuit voltage measurements and wherein the            top member of the configuration list is designated as a            master battery pack of the battery system; and        -   enable the second discharging array to allow discharging            onto the power bus.            Embodiment #23. The battery system of Embodiment #22            comprising:

a third battery pack, wherein the third battery pack is installed in thebattery system when the first and second battery packs are dischargingonto the power bus, the third battery pack including:

-   -   a third communication interface circuit configured to interface        to the communication channel;    -   a third discharging array;    -   a third processor; and    -   a third memory storing computer-executable instructions that,        when executed by the third processor, cause the third battery        pack to:    -   disable the third discharging array to prevent discharging onto        the power bus from the third battery pack;    -   obtain a third open circuit voltage measurement of the third        battery pack; and    -   share the third open circuit voltage measurement with the        plurality of battery packs via the communication channel.        Embodiment #24. The battery system of Embodiment #23, wherein        the third memory storing computer-executable instructions that,        when executed by the third processor, cause the third battery        pack to:    -   update a third copy of the configuration list based the third        open circuit voltage measurement and the shared open circuit        voltage measurements from the plurality of battery packs.        Embodiment #25. The battery system of Embodiment #24, wherein        the updating occurs after the first and second battery packs are        disconnected from the battery system.        Embodiment #26. The battery system of Embodiment #24, wherein        the updating occurs while the first and second battery packs are        discharging onto the power bus.        Embodiment #27. A method of powering an end device by a battery        system, the battery system comprising a plurality of previously        installed battery packs, wherein the plurality of previously        installed battery packs include a master battery pack, the        method comprising:

inserting an additional battery pack into the battery systemestablishing a first connection to a power bus and a second connectionto a communication bus;

interacting, by the additional battery pack, with the master batterypack; and

in response to the interacting, preventing an in-rush current from theadditional battery pack to one of the plurality of previously installedbattery packs.

Embodiment #28. The method of Embodiment #27, wherein the preventingcomprises:

receiving, by the additional battery pack from the master battery pack,a first disable message via the communication bus, wherein the firstdisable message instructs the additional battery pack to disablecharging and discharging through the power bus.

Embodiment #29. The method of Embodiment #27, further comprising:

in response to the inserting, providing an insertion indication by theadditional battery pack via the communication bus, wherein the insertionindication includes an identification (ID) of the additional batterypack.

Embodiment #30. The method of Embodiment #29, further comprising:

in response to the providing, receiving a configuration message, whereinthe configuration message includes a configuration list indicative of abattery system configuration, wherein an entry in the configuration listfor the additional battery pack is located at a bottom position of theconfiguration list, and wherein the additional battery pack serves as aslave battery pack in the battery system.

Embodiment #31. The method of Embodiment #30, further comprising:

obtaining, by the additional battery pack, first battery statusinformation about battery cells located at the additional battery pack,wherein the first battery status information includes a first state ofcharge (SoC) value for the battery cells;

receiving, by the additional battery pack from the master battery packover the communication bus, a first status request for the first batterystatus information; and

in response to the receiving the first status request, sending the firstSoC value to the master battery pack over the communication bus.

Embodiment #32. The method of Embodiment #31, further comprising:

receiving, from the additional battery pack, the first SoC value;

determining, by the master battery pack, whether to initiate chargebalancing that includes the additional battery pack based on the firstSoC value; and

in response to the determining, sending, by the master battery pack tothe additional battery pack an enable message to configure theadditional battery pack with the power bus.

Embodiment #33. The method of Embodiment #32, further comprising:

receiving, by the additional battery pack from the master battery pack,the enable message via the communication bus; and

configuring the additional battery pack to interact with the power busin accordance with the enable message.

Embodiment #34. The method of Embodiment #32, wherein the determiningwhether to initiate charge balancing comprises:

when the first SoC value is a high SoC value relative to the pluralityof previously installed battery packs, sending, by the master batterypack, the enable message instructing the additional battery pack toenable discharging of the battery cells onto the power bus; and

when the first SoC value is a low SoC value relative to the plurality ofpreviously installed battery packs, sending, by the master battery pack,the enable message instructing the additional battery pack to enablecharging of the battery cells from the power bus.

Embodiment #35. The method of Embodiment #34, wherein the determiningwhether to initiate charge balancing further comprises:

when the first SoC value equals the low SoC value and a differencebetween the high SoC value and the low SoC value is greater than apredetermined amount, sending the enable message instructing theadditional battery pack to enable the charging of the battery cells fromthe power bus through a converter located at the additional batterypack.

Embodiment #36. The method of Embodiment #34, further comprising;

after receiving the enable message by the additional battery pack fromthe master battery pack, obtaining a second SoC value of the batterycells;

receiving, by the additional battery pack from the master battery packover the communication bus, a second status request for second batterystatus information; and

in response to the receiving the second status request, sending thesecond SoC value to the master battery pack over the communication bus.

Embodiment #37. The method of Embodiment #36, further comprising:

receiving, from the additional battery pack, the second SoC value;

when the first SoC value equals the high SoC value and the second SoCvalue is below a first threshold, sending, by the master battery pack, asecond disable message instructing the additional battery pack toterminate discharging of the battery cells onto the power bus; and

when the first SoC value equals the low SoC value and the second SoCvalue is greater than a second threshold, sending, by the master batterypack, the second disable message instructing the additional battery packto terminate charging of the battery cells from the power bus.

Embodiment #38. The method of Embodiment #27, wherein the communicationbus comprises a controller area network (CAN) bus.

Embodiment #39. A first battery pack configured for installation in abattery system for electrically powering an end device, wherein allinstalled battery packs installed in the battery system have identicalelectrical and electronic components, the first battery pack comprising:

a communication interface circuit configured to interface to acommunication channel;

a power bus interface circuit configured to interface with a power busand to provide electrical power to the end device;

a controller comprising at least one processor; and

a memory storing controller instructions that, when executed by the atleast one processor, cause the controller to:

when the first battery pack is inserted into the battery system,generate an insertion indication via the communication channel, whereinthe insertion indication includes an identification (ID) of the firstbattery pack.

in response to the generating the insertion indication, receive from amaster battery pack of the battery system, a disable message over thecommunication channel via the communication interface circuit; and

in response to the receiving the disable message, disable charging anddischarging through the power bus.

Embodiment #40. The first battery pack of Embodiment #39, wherein thecontroller instructions, when executed by the at least one processor,further cause the controller to:

in response to the generating the insertion indication, receive aconfiguration message, wherein the configuration message includes aconfiguration list indicative of a battery system configuration, whereinan entry in the configuration list for the first battery pack is locatedat a bottom position of the configuration list, and wherein the firstbattery pack serves as a slave battery pack in the battery system.

Embodiment #41. The first battery pack of Embodiment #40, wherein thecontroller instructions, when executed by the at least one processor,further cause the controller to:

obtain battery status information about battery cells located at thefirst battery pack, wherein the battery status information includes astate of charge (SoC) value for the battery cells;

receive, from the master battery pack over the communication channel, astatus request for the battery status information; and

in response to the receiving the status request, send the SoC value tothe master battery pack over the communication channel.

Embodiment #42. The first battery pack of Embodiment #41, wherein thecontroller instructions, when executed by the at least one processor,further cause the controller to:

in response to the sending the SoC value, receive, from the masterbattery pack, an enable message via the communication channel; and

configure the power bus interface circuit to interact with the power busin accordance with the enable message.

Embodiment #43. A battery system configured for electrically powering anend device and comprising a plurality of battery packs, the batterysystem comprising:

a first battery pack including:

-   -   a power bus interface circuit configured to interface with a        power bus and to provide electrical power to the end device;    -   a first communication interface circuit configured to interface        to a controller area network (CAN) bus;    -   a first controller comprising at least one processor; and    -   a first memory storing controller instructions that, when        executed by the at least one processor, cause the first        controller to:        -   when the first battery pack is inserted into the battery            system, provide an insertion indication via the CAN bus,            wherein the insertion indication includes an identification            (ID) of the first battery pack;        -   in response to the providing, receive from a master battery            pack of the battery system a first disable message over the            CAN bus via the first communication interface circuit; and        -   in response to the receiving, disable charging and            discharging through the power bus; and

a second battery pack serving as the master battery pack of the batterysystem.

Embodiment #44. The battery system of Embodiment #43, wherein the firstmemory storing controller instructions that, when executed by the atleast one processor, cause the first controller to:

-   -   obtain battery status information about battery cells located at        the first battery pack, wherein the battery status information        includes a state of charge (SoC) value for the battery cells;    -   receive, from the master battery pack over the CAN bus, a status        request for the battery status information; and    -   in response to the receiving the status request, send the SoC        value to the master battery pack over the CAN bus.        Embodiment #45. The battery system of Embodiment #44, wherein        the second battery pack includes:    -   a second communication interface circuit configured to interface        to the CAN bus;    -   a second controller comprising one or more processors; and    -   a second memory storing controller instructions that, when        executed by the one or more processors, cause the second        controller to:        -   receive, from the first battery pack, the SoC value;        -   determine, by the master battery pack, whether to initiate            charge balancing that includes the first battery pack based            on the SoC value; and        -   in response to the determining whether to initiate charge            balancing, send, by the master battery to the first battery            pack an enable message to configure the first battery pack            with the power bus.            Embodiment #46. The battery system of Embodiment #45,            wherein the second memory storing controller instructions            that, when executed by the one or more processors, further            cause the second controller to:    -   when the SoC value is a high SoC value relative to a plurality        of previously installed battery packs, send, by the master        battery pack, the enable message instructing the first battery        pack to enable discharging of the battery cells onto the power        bus; and        when the SoC value is a low SoC value relative to the plurality        of previously installed battery packs, send, by the master        battery pack, the enable message instructing the first battery        pack to enable charging of the battery cells from the power bus.        Embodiment #47. A first battery pack configured for installation        in a battery system for electrically powering an end device,        wherein all installed battery packs installed in the battery        system have identical electrical and electronic components, the        first battery pack comprising:

one or more battery cells;

a communication interface circuit configured to interface to acommunication channel;

a power bus interface circuit configured to interface with a power busand to provide electrical power to the end device;

a controller comprising at least one processor; and

a memory storing controller instructions that, when executed by the atleast one processor, cause the controller to:

-   -   determining that the first battery pack is a master battery pack        of the battery system;    -   when the first battery pack receives a first failure        notification message from a second battery pack over the        communication channel via the communication interface circuit        and when an extra battery pack is needed, determine whether a        first spare battery pack is available, wherein the first failure        notification message is indicative of a first catastrophic        failure at the second battery pack;    -   when the first spare battery pack is an only spare battery pack        and when the extra battery pack is needed, send a first enable        message to the first spare battery pack over the communication        channel, wherein the first enable message instructs the first        spare battery pack to discharge onto the power bus; and    -   when the first battery pack receives the first failure        notification message from the second battery pack, send a first        disable message to the second battery pack over the        communication channel, wherein the first disable message        instructs the second battery pack to terminate discharging onto        the power bus.        Embodiment #48. The first battery pack of Embodiment #47,        wherein the controller instructions, when executed by the at        least one processor, further cause the controller to:

when the first battery pack is the master battery pack of the batterysystem:

-   -   when no spare battery packs are available, send a degradation        alert message to the end device.        Embodiment #49. The first battery pack of Embodiment #48,        wherein the controller instructions, when executed by the at        least one processor, further cause the controller to:

when the first battery pack is the master battery pack of the batterysystem:

-   -   when degraded operation is not acceptable to the end device,        initiate shutdown of the battery system.        Embodiment #50. The first battery pack of Embodiment #49,        wherein the controller instructions, when executed by the at        least one processor, further cause the controller to:

when the first battery pack is the master battery pack of the batterysystem:

-   -   instructing all battery packs of the battery system from        discharging onto the power bus.        Embodiment #51. The first battery pack of Embodiment #47,        wherein the controller instructions, when executed by the at        least one processor, further cause the controller to:

when the first battery pack is the master battery pack of the batterysystem:

-   -   when a plurality of spare battery packs are available, select a        highest SoC spare battery pack from the plurality of spare        battery packs, wherein the highest SoC spare battery pack is        characterized by a highest state of charge (SoC) value of all of        the plurality of spare battery packs; and    -   send a second enable message to the highest SoC spare battery        pack, wherein the second enable message instructs the highest        SoC spare battery pack to discharge onto the power bus.        Embodiment #52. The first battery pack of Embodiment #47,        wherein the communication channel comprises a controller area        network (CAN) bus.        Embodiment #53. The first battery pack of Embodiment #47,        wherein the controller instructions, when executed by the at        least one processor, further cause the controller to:

when the first battery pack is the master battery pack of the batterysystem:

-   -   monitor the one or more battery cells;    -   based on the monitoring, determine whether a second catastrophic        failure has occurred;    -   when the second catastrophic failure has occurred, determine        whether the first spare battery pack is available;    -   when the first battery pack is available, send the first enable        message to the first spare battery pack, wherein the first        enable message instructs the first spare battery pack to        discharge onto the power bus; and    -   disable itself from discharging onto the power bus.        Embodiment #54. The first battery pack of Embodiment #47,        wherein the controller instructions, when executed by the at        least one processor, further cause the controller to:

when the first battery pack is a slave battery pack of the batterysystem:

-   -   monitor the one or more battery cells;    -   based on the monitoring, determine whether a third catastrophic        failure has occurred; and

when the third catastrophic failure has occurred, send a second failurenotification message to the master battery pack of the battery system.

Embodiment #55. The first battery pack of Embodiment #54, wherein thecontroller instructions, when executed by the at least one processor,further cause the controller to:

in response to the sending, receive a second disable message from themaster battery pack; and

in response to the receiving, terminate discharging onto the power bus.

Embodiment #56. The first battery pack of Embodiment #47, wherein thecontroller instructions, when executed by the at least one processor,further cause the controller to:

-   -   when the first battery pack detects an internal catastrophic        failure, internally terminate discharging onto the power bus;    -   when at least one spare battery pack is available, enable one of        the at least one spare battery packs;    -   when no spare battery pack is available, send a degradation        alert message to the end device; and    -   continue to operate as the master battery pack of the battery        system.        Embodiment #57. The first battery pack of Embodiment #47,        wherein the controller instructions, when executed by the at        least one processor, further cause the controller to:    -   when the first battery pack detects an internal catastrophic        failure, internally terminate discharging onto the power bus;        and    -   reassign one of the slave battery packs as a new master battery        pack.        Embodiment #58. The first battery pack of Embodiment #47,        wherein the controller instructions, when executed by the at        least one processor, further cause the controller to:    -   when the first battery pack fails to receive any messages from        the second battery pack over the communications channel, attempt        to disable the second battery pack from discharging onto the        power bus; and    -   adjust a power level over the power bus to the end device.        Embodiment #59. A method of powering an end device by a battery        system, the method comprising:    -   when a master battery pack receives a failure notification        message from a slave battery pack over a communication channel        and when an extra battery pack is needed, determining whether a        first spare battery pack is available, wherein the failure        notification message is indicative of a catastrophic failure at        the slave battery pack;    -   when the first spare battery pack is an only spare battery pack        and when the extra battery pack is needed, sending, by the        master battery pack, an enable message to the first spare        battery pack, wherein the enable message instructs the first        spare battery pack to discharge onto a power bus; and    -   when the master battery pack receives the failure notification        message from the slave battery pack, sending, by the master        battery pack, a disable message to the slave battery pack,        wherein the disable message instructs the slave battery pack to        terminate discharging onto the power bus.        Embodiment #60. The method of Embodiment #59, comprising:    -   when degraded operation is not acceptable to the end device,        initiating shutdown of the battery system.        Embodiment #61. The method of Embodiment #59, comprising:    -   when a plurality of spare battery packs are available, selecting        a highest SoC spare battery pack from the plurality of spare        battery packs, wherein the highest SoC spare battery pack is        characterized by a highest state of charge (SoC) value of all of        the plurality of spare battery packs; and    -   sending the enable message to the highest SoC spare battery        pack, wherein the enable message instructs the highest SoC spare        battery pack to discharge onto the power bus.        Embodiment #62. The method of Embodiment #59, comprising:    -   monitoring, by the slave battery pack, one or more battery        cells;    -   based on the monitoring, determining whether the catastrophic        failure has occurred; and    -   when the catastrophic failure has occurred, sending the failure        notification message to the master battery pack of the battery        system.        Embodiment #63. The method of Embodiment #62, comprising:    -   in response to the sending, receiving, by the slave battery        pack, the disable message from the master battery pack; and    -   in response to the receiving the disable message, terminating        discharging onto the power bus.        Embodiment #64. A battery system configured for electrically        powering an end device and comprising a plurality of battery        packs, the battery system comprising:    -   a slave battery pack; and    -   a master battery pack including:    -   a first communication interface circuit configured to interface        to a controller area network (CAN) bus;    -   a first controller comprising at least one processor; and    -   a first memory storing controller instructions that, when        executed by the at least one processor, cause the first        controller to:        -   when the master battery pack receives a failure notification            message from the slave battery pack over the CAN bus via the            first communication interface circuit and when an extra            battery pack is needed, determine whether a first spare            battery pack is available, wherein the failure notification            message is indicative of a catastrophic failure at the slave            battery pack;        -   when the first spare battery pack is an only spare battery            pack and when the extra battery pack is needed, send an            enable message to the first spare battery pack, wherein the            enable message instructs the first spare battery pack to            discharge onto a power bus; and        -   when the master battery pack receives the failure            notification message from the slave battery pack, send a            disable message to the slave battery pack, wherein the            disable message instructs the slave battery pack to            terminate discharging onto the power bus.            Embodiment #65. The battery system of Embodiment #64,            wherein the first memory storing controller instructions            that, when executed by the at least one processor, cause the            first controller to:    -   when degraded operation is not acceptable to the end device,        initiate shutdown of the battery system.        Embodiment #66. The battery system of Embodiment #65, wherein        the first memory storing controller instructions that, when        executed by the at least one processor, cause the first        controller to:    -   instruct all battery packs of the battery system from        discharging onto the power bus.        Embodiment #67. The battery system of Embodiment #64, wherein        the first memory storing controller instructions that, when        executed by the at least one processor, cause the first        controller to:    -   when a plurality of spare battery packs is available, select a        highest SoC spare battery pack from the plurality of spare        battery packs, wherein the highest SoC spare battery pack is        characterized by a highest state of charge (SoC) value of all of        the plurality of spare battery packs; and    -   send the enable message to the highest SoC spare battery pack,        wherein the enable message instructs the highest SoC spare        battery pack to discharge onto the power bus.        Embodiment #68. The battery system of Embodiment #64, wherein        the slave battery pack includes:    -   a second communication interface circuit configured to interface        to a controller area network (CAN) bus;    -   a second controller comprising one or more processors;    -   one or more battery cells; and    -   a second memory storing controller instructions that, when        executed by the one or more processors, cause the first        controller to:        -   monitor the one or more battery cells;        -   based on the monitoring, determine whether the catastrophic            failure has occurred; and        -   when the catastrophic failure has occurred, send the failure            notification message to the master battery pack of the            battery system.            Embodiment #69. The battery system of Embodiment #68,            wherein the second memory storing controller instructions            that, when executed by the one or more processors, cause the            second controller to    -   in response to the sending the failure notification message,        receive the disable message from the master battery pack; and    -   in response to the receiving the disable message, terminate        discharging onto the power bus.        Embodiment #70. A method of powering an end device by a battery        system, the battery system comprising a plurality of battery        packs, the method comprising:

gathering, by a master battery pack of the battery system, batterystatus information from the plurality of battery packs, wherein theplurality of battery pack comprises the master battery packs and allslave battery packs and wherein the battery status information includesa state of charge (SoC) data;

determining, by the master battery pack and based the battery statusinformation, whether a first subset of the plurality of battery packsneeds to be balanced in charge;

selecting, by the master battery pack, a first type of balancing from aplurality of balancing types appropriate for the first subset of theplurality of battery packs; and

applying, by the master battery pack, the selected first type ofbalancing via a power bus until desired SoC values are obtained for thefirst subset of the plurality of battery packs.

Embodiment #71. The method of Embodiment #70, wherein the plurality ofbalancing types comprise a converter balancing technique, a directbalancing technique, and a staggered balancing technique.

Embodiment #72. The method of Embodiment #71, comprising:

-   -   identifying, by the master battery pack, a first battery pack        having a high SoC value from the gathered battery status        information; and

comparing, by the master battery pack, the high SoC value with SoCvalues of all remaining battery packs.

Embodiment #73. The method of Embodiment #72, comprising:

in response to the comparing, when a first SoC difference between thefirst battery pack and a second battery pack is greater than a firstpredetermined amount, initiating, by the master battery pack, theconverter balancing technique for the first and second battery packs.

Embodiment #74. The method of Embodiment #73, comprising:

sending, by the master battery pack, to the first battery pack a firstenable message over a communication channel, wherein the first enablemessage instructs the first battery pack to discharge over the powerbus; and

sending, by the master battery pack, to the second battery pack a secondenable message over the communication channel, wherein the second enablemessage instructs the second battery pack to enable its converter and tocharge from the power bus.

Embodiment #75. The method of Embodiment #73, comprising:

in response to the comparing, when a second SoC difference between thefirst battery pack and a third battery pack is greater than the firstpredetermined amount, initiating, by the master battery pack, theconverter balancing technique for the first, second, and third batterypacks.

Embodiment #76. The method of Embodiment #75, wherein one of the first,second, and third battery packs serves as the master battery pack of thebattery system.

Embodiment #77. The method of Embodiment #72, comprising:

in response to the comparing, when a third SoC difference between thefirst battery pack and a fourth battery pack is less than a secondpredetermined amount, initiating, by the master battery pack, the directbalancing technique for the first battery pack and the fourth batterypack.

Embodiment #78. The method of Embodiment #77, comprising:

sending, by the master battery pack, to the first battery pack a thirdenable message over a communication channel, wherein the third enablemessage instructs the first battery pack to discharge over the powerbus; and

sending, by the master battery pack, to the fourth battery pack a fourthenable message over the communication channel, wherein the fourth enablemessage instructs the fourth battery pack to charge from the power bus.

Embodiment #79. The method of Embodiment #77, wherein one of the firstand fourth battery packs serves as the master battery pack.

Embodiment #80. The method of Embodiment #72, comprising:

in response to the comparing, when a fourth SoC difference between thefirst battery pack and a fifth battery pack is less than a thirdpredetermined amount, a fifth SoC difference between the first batterypack and a sixth battery pack is greater than a fourth predeterminedamount, and a sixth SoC difference between the first battery pack and aseventh battery pack is greater than the fourth predetermined amount,initiating the staggered balancing technique to the first battery pack,the fifth battery pack, and the sixth battery pack.

Embodiment #81. The method of Embodiment #80, comprising:

sending, by the master battery pack, to the first battery pack a fifthenable message over a communication channel, wherein the fifth enablemessage instructs the first battery pack to discharge over the powerbus;

-   -   sending, by the master battery pack, to the fifth battery pack a        sixth enable message over the communication channel, wherein the        sixth enable message instructs the fifth battery pack to charge        from the power bus, wherein the direct balancing technique is        applied for the first battery pack and the fifth battery pack;        and    -   sending, by the master battery pack, to the sixth battery pack a        seventh enable message over the communication channel, wherein        the seventh enable message instructs the sixth battery pack to        enable its converter and to charge from the power bus, wherein        the converter balancing technique is applied for the first        battery pack and the sixth battery pack.        Embodiment #82. The method of Embodiment #81, comprising:    -   obtaining current SoC values for the fifth and sixth battery        packs; and    -   in response to the obtaining, when an eighth difference between        a first current SoC value of the fifth battery pack and a second        current SoC value of the sixth battery pack is greater than a        fifth predetermined value, switching the direct balancing        technique to the first battery pack and the seventh battery pack        from the first battery pack and the sixth battery pack.        Embodiment #83. The method of Embodiment #82, comprising:    -   sending, by the master battery pack, to the fifth battery pack        an eighth enable message over the communication channel, wherein        the eighth enable message instructs the fifth battery pack to        enable its converter and charge from the power bus, wherein the        converter balancing technique is applied for the first battery        pack and the fifth battery pack; and    -   sending, by the master battery pack, to the sixth battery pack a        ninth enable message over the communication channel, wherein the        ninth enable message instructs the sixth battery pack to disable        its converter and to charge from the power bus, wherein the        direct balancing technique is applied for the first battery pack        and the sixth battery pack.        Embodiment #84. The method of Embodiment #75, wherein one of the        first, fifth, and sixth battery packs serves as the master        battery pack of the battery system.        Embodiment #85. The method Embodiment #70, further comprising:    -   obtaining, by the master battery pack, current SoC values from        the plurality of battery packs;    -   determining, by the master battery pack and based the current        SoC values, whether a second subset of the plurality of battery        packs needs to be balanced in charge;    -   selecting, by the master battery pack, a second type of        balancing from the plurality of balancing types appropriate for        the second subset of the plurality of battery packs, wherein the        first type and second type of balancing are different; and    -   applying, by the master battery pack, the selected second type        of balancing for the second subset of the plurality of battery        packs.        Embodiment #86. The method Embodiment #70, wherein the applying        comprises:    -   obtaining a safety interlock indicator and a wake indicator; and    -   only when the safety interlock indicator is indicative of being        on and the wake indicator is indicative of being off, enabling        the applying.        Embodiment #87. A first battery pack configured for installation        in a battery system for electrically powering an end device,        wherein all installed battery packs installed in the battery        system have identical electrical and electronic components, the        first battery pack comprising:    -   a communication interface circuit configured to interface to a        communication channel;    -   a power bus interface circuit configured to interface with a        power bus and to provide electrical power to the end device;    -   a controller comprising at least one processor; and

a memory storing controller instructions that, when executed by the atleast one processor, cause the controller to:

when the first battery pack serves as a master battery pack of thebattery system:

-   -   gather battery status information from a plurality of battery        packs, wherein the plurality of battery pack comprises the        master battery packs and all slave battery packs and wherein the        battery status information includes a state of charge (SoC)        data;    -   determine, based the battery status information, whether a first        subset of the plurality of battery packs needs to be balanced in        charge;    -   select a first type of balancing from a plurality of balancing        types appropriate for the first subset of the plurality of        battery packs; and    -   apply the selected first type of balancing until desired SoC        values are obtained for the first subset of the plurality of        battery packs.        Embodiment #88. The first battery pack of Embodiment #87,        wherein the memory storing controller instructions that, when        executed by the at least one processor, cause the controller to:    -   identify a first battery pack having a high SoC value from the        gathered battery status information; and    -   compare the high SoC value with SoC values of all remaining        battery packs.        Embodiment #89. The first battery pack of Embodiment #88,        wherein the memory storing controller instructions that, when        executed by the at least one processor, cause the controller to:    -   in response to the comparing, when a first SoC difference        between the first battery pack and a second battery pack is        greater than a first predetermined amount, initiate, by the        master battery pack, a converter balancing technique for the        first and second battery packs.        Embodiment #90. The first battery pack of Embodiment #88,        wherein the memory storing controller instructions that, when        executed by the at least one processor, cause the controller to:    -   in response to the comparing, when a third SoC difference        between the first battery pack and a fourth battery pack is less        than a second predetermined amount, initiate, by the master        battery pack, a direct balancing technique for the first battery        pack and the fourth battery pack.        Embodiment #91. The first battery pack of Embodiment #88,        wherein the memory storing controller instructions that, when        executed by the at least one processor, cause the controller to:    -   in response to the comparing, when a fourth SoC difference        between the first battery pack and a fifth battery pack is less        than a third predetermined amount, a fifth SoC difference        between the first battery pack and a sixth battery pack is        greater than a fourth predetermined amount, and a sixth SoC        difference between the first battery pack and a seventh battery        pack is greater than the fourth predetermined amount, initiate a        staggered balancing technique to the first battery pack, the        fifth battery pack, and the sixth battery pack.        Embodiment #92. A battery system configured for electrically        powering an end device and comprising a plurality of battery        packs, the battery system comprising:    -   a plurality of slave battery packs; and    -   a master battery pack including:    -   a first communication interface circuit configured to interface        to a controller area network (CAN) bus;        -   a controller comprising at least one processor; and    -   a memory storing controller instructions that, when executed by        the at least one processor, cause the controller to:    -   gather battery status information from all battery packs of the        battery system, wherein said all battery packs comprises the        master battery packs and the plurality of slave battery packs        and wherein the battery status information includes a state of        charge (SoC) data;    -   determine, based the battery status information, whether a first        subset of said all battery packs needs to be balanced in charge;    -   select a first type of balancing from a plurality of balancing        types appropriate for the first subset of said all battery        packs; and    -   apply the selected first type of balancing until desired SoC        values are obtained for the first subset of said all battery        packs.        Embodiment #93. The battery system of Embodiment #92, wherein        the memory storing controller instructions that, when executed        by the at least one processor, cause the controller to:    -   identify a first battery pack having a high SoC value from the        gathered battery status information, wherein the plurality of;        and    -   compare the high SoC value with SoC values of all remaining        battery packs.        Embodiment #94. The battery system of Embodiment #93, wherein        the memory storing controller instructions that, when executed        by the at least one processor, cause the controller to:    -   in response to the comparing:    -   when a first SoC difference between the first battery pack and a        second battery pack is greater than a first predetermined        amount, initiate a converter balancing technique for the first        and second battery packs;    -   when the first SoC difference between the first battery pack and        the second battery pack is less than a second predetermined        amount, initiate a direct balancing technique for the first        battery pack and the second battery pack; and    -   when the first SoC difference between the first battery pack and        the second battery pack is less than the second predetermined        amount, a second SoC difference between the first battery pack        and a third battery pack is greater than the first predetermined        amount, and a third SoC difference between the first battery        pack and a fourth battery pack is greater than the first        predetermined amount, initiate a staggered balancing technique        to the first, second, third, and fourth battery packs.        Embodiment #95. A method comprising:    -   receiving, by a computing device having one or more processors,        a first reading of a state of charge (SOC) of each of a        plurality of battery packs, wherein the plurality of battery        packs comprises at least a first group of one or more battery        packs and a second group of one or more battery packs;    -   identifying, by the computing device, based on the received        first reading of the SOC of each of the plurality of battery        packs, and based on an identification of a lowest level for a        first reading of an SOC and a second lowest level for a first        reading of an SOC,    -   the first group as having the lowest level for the first reading        of the SOC, and    -   the second group as having the second lowest level for the first        reading of the SOC;    -   generating, by the computing device and based on the        identification of the lowest level and the second lowest level,        a first list comprising of the first group and the second group;

determining, by the computing device, based on the first reading of theSOC of the first group, and based on the first reading of the SOC of thesecond group, a first SOC variability of the first list;

-   -   determining, by the computing device and based on the first SOC        variability, that the first SOC variability does not satisfy a        SOC variability threshold;    -   establishing, by the computing device, a first SOC threshold        using the first reading of the SOC of the second group;    -   causing, by the computing device and via electric charge arrays,        the charging of the first group to cause the SOC of the first        group to increase;    -   receiving, by the computing device, a second reading of the SOC        of each of the plurality of battery packs;

determining, by the computing device and based on a second reading ofthe SOC of the first group, that the second reading of the SOC of thefirst group satisfies the first SOC threshold.

Embodiment #96. The method of Embodiment #95, further comprising:

-   -   determining, by the computing device and based on the received        second reading of the SOC of each of the plurality of battery        packs, an updated first SOC variability of the first list;

determining, by the computing device, that the updated first SOCvariability satisfies the SOC variability threshold.

Embodiment #97. The method of Embodiment #95, wherein the receiving thefirst reading of the SOC of each of the plurality of battery packsfurther comprises:

-   -   identifying, by the computing device, a master battery pack as        one of the plurality of battery packs; and    -   receiving, by the computing device and from the master battery        pack, the first reading of the SOC of each of the plurality of        battery packs.        Embodiment #98. The method of Embodiment #95, wherein the        causing the charging further comprises enabling an electric        discharge array from a charger to the one or more battery packs        of the first group of one or more battery packs via a converter.        Embodiment #99. The method of Embodiment #95, wherein the        plurality of battery packs further comprises at least a third        group of one or more battery packs, and wherein the method        further comprises:    -   identifying, by the computing device, based on the received        second reading of the SOC of each of the plurality of battery        packs, and based on an identification of a lowest level for a        second reading of an SOC and a second lowest level for a second        reading of an SOC,    -   the first group and the second group as having the lowest level        for the second reading of the SOC, and    -   the third group as having the second lowest level for the second        reading of the SOC;    -   generating, by the computing device and based on the lowest        level for the second reading of the SOC and the second lowest        level for the second reading of the SOC, a second list        comprising the first group, the second group, and the third        group;

determining, by the computing device, based on the second reading of theSOC of the first group, based on the second reading of the SOC of thesecond group, and based on the second reading of the SOC of the thirdgroup, a second SOC variability of the second list.

Embodiment #100. The method of Embodiment #99, wherein the generatingthe second list comprises expanding the first list to include batterypacks having the second lowest level for the second reading of the SOC.

Embodiment #101. The method of Embodiment #99, further comprising:

-   -   determining, by the computing device, that the second SOC        variability does not satisfy the SOC variability threshold;    -   establishing, by the computing device, a second SOC threshold        based on a second reading of the SOC of the third group;    -   causing, by the computing device and via electric charge arrays,        -   the charging of the first group to cause the SOC of the            first group to increase, and        -   the charging of the second group to cause the SOC of the            second group to increase;        -   receiving, by the computing device, a third reading of the            SOC of each of the plurality of battery packs;

determining, by the computing device, that a third reading of the SOC ofthe first group and a third reading of the SOC of the second group eachsatisfy the second SOC threshold.

Embodiment #102. The method of Embodiment #101, further comprising:

-   -   performing one or more iterations of the following until a        determined updated SOC variability of the plurality of battery        packs satisfies the SOC variability threshold:    -   identifying, by the computing device,        -   an Nth group of one or more battery packs of the plurality            of battery back devices, wherein the nth group has a lowest            level of a previous reading of the SOC of the plurality of            battery packs, and        -   an (N+1) group of one or more battery packs of the plurality            of battery back devices, wherein the (N+1) group has the            second lowest level of the previous reading of the SOC of            the plurality of battery packs, and        -   generating, by the computing device, a list comprising the n            group and the N+1 group;        -   determining, by the computing device, that an SOC            variability of the list does not satisfy the SOC variability            threshold;        -   establishing, by the computing device, an SOC threshold            using the previous reading of the SOC of the N+1 group;    -   causing, by the computing device and via electric charge arrays,        the charging of the n group to cause the SOC of the n group to        increase and satisfy the SOC threshold;    -   receiving, by the computing device, a subsequent reading of an        SOC of each of the plurality of battery packs; and    -   determining, by the computing device and based on the subsequent        reading of the SOC of each of the plurality of battery packs,        the updated SOC variability of the plurality of battery packs.        Embodiment #103. The method of Embodiment #95, further        comprising:    -   prior to the receiving the first reading of the SOC of each of        the plurality of battery packs, determining that an interlock        safety pin associated with the plurality of battery packs is set        to on, wherein the interlock safety pin allows the receiving the        first reading of the SOC of each of the plurality of battery        pack to occur.        Embodiment #104. The method of Embodiment #95, further        comprising:

prior to the causing the charging, determining that a wake pinassociated with the plurality of battery packs is set to on, wherein thewake pin allows the charging to occur.

Embodiment #105. A method comprising:

-   -   receiving, by a computing device having one or more processors        and communicatively linked to an end device, a power requirement        of the end device;    -   receiving, by the computing device, a first reading of a state        of charge (SOC) of each of a plurality of battery packs,    -   wherein the plurality of battery packs comprises at least a        first group of one or more battery packs and a second group of        one or more battery packs, and    -   wherein a first reading of an SOC of the second group is greater        than a first reading of an SOC of the first group;    -   determining, by the computing device and based on the received        first reading of the SOC of each of the plurality of battery        packs, a first SOC variability of the plurality of battery        packs;    -   determining, by the computing device and based on the first SOC        variability not satisfying an SOC variability threshold, to        enable the second group to initially power the end device        without a concurrent powering of the end device by other battery        packs of the plurality of battery packs; and    -   causing, by the computing device and via an electric charge        array, the second group to power the end device to a first power        level, wherein the powering the end device causes the SOC of the        second group to decrease.        Embodiment #106. The method of Embodiment #105, further        comprising:

receiving, by the computing device, a second reading of an SOC of eachof the plurality of battery packs; and

determining, by the computing device and based on the received secondreading of the SOC of each of the plurality of battery packs, a secondSOC variability of the plurality of battery packs;

determining, by the computing device, that the second SOC variabilitysatisfies the SOC variability threshold; and

causing, by the computing device and via one or more electric chargearrays, the first group and the second group to power the end device toa second power level, wherein the powering the end device causes thesecond reading of the SOC of the first group and the second reading ofthe SOC of the second group to decrease.

Embodiment #107. The method of Embodiment #105, further comprising:

receiving, by the computing device, a second reading of the SOC of eachof the plurality of battery packs,

-   -   wherein the plurality of battery packs further comprises a third        group of one or more battery packs,    -   wherein the second reading of the SOC of the second group and        the second reading of the SOC of the third group are within a        predetermined reading of each other, and    -   wherein the second reading of the SOC of the second group and        the second reading of the SOC of the third group are each        greater than the second reading of the SOC of the first group,

determining, by the computing device and based on the received secondreading of the SOC of each of the plurality of battery packs, a secondSOC variability of the plurality of battery packs;

determining, by the computing device, that the second SOC variabilitydoes not satisfy the SOC variability threshold; and

causing, by the computing device and via one or more electric chargearrays, the second group and the third group to concurrently power theend device to a second power level, wherein the powering the end devicecauses the SOC of the second group and the SOC of the third group todecrease.

Embodiment #108. The method of Embodiment #105, wherein the receivingthe first reading of the SOC of each of the plurality of battery packsfurther comprises:

-   -   identifying, by the computing device, a master battery pack as        one of the plurality of battery packs; and    -   receiving, by the computing device and from the master battery        pack, the first reading of the SOC of each of the plurality of        battery packs.        Embodiment #109. A method comprising:

receiving, by a computing device having one or more processors andcommunicatively linked to an end device, a power requirement of the enddevice;

-   -   receiving, by the computing device, a first reading of a state        of charge (SOC) of each of a plurality of battery packs,    -   wherein the plurality of battery packs comprises at least a        first group of one or more battery packs and a second group of        one or more battery packs,    -   wherein a first reading of an SOC of the second group is greater        than a first reading of an SOC of the first group, and    -   determining, by the computing device and based on the received        first reading of the SOC of each of the plurality of battery        packs, a first SOC variability of the plurality of battery        packs;    -   determining, by the computing device, that the first SOC        variability does not satisfy an SOC variability threshold; and    -   causing, by the computing device, and via one or more electric        charge arrays, the second group to charge the first group,        wherein the charging the first group decreases the SOC of the        second group and increases the SOC of the first group.        Embodiment #110. The method of Embodiment #109, further        comprising:

receiving, by the computing device, a second reading of the SOC of eachof the plurality of battery packs;

determining, by the computing device and based on the received secondreading of the SOC of each of the plurality of battery packs, a secondSOC variability of the plurality of battery packs; and

determining, by the computing device, that the second SOC variabilitysatisfies the SOC variability threshold.

Embodiment #111. The method of Embodiment #110, further comprising:

causing, by the computing device and via one or more electric chargearrays, the plurality of battery packs to power the end device, whereinthe powering causes the SOC of the plurality of battery packs todecrease.

Embodiment #112. The method of Embodiment #109, further comprising:

receiving, by the computing device, a first reading of a state of health(SOH) of each of the plurality of battery packs, wherein the pluralityof battery packs further comprises a third group of one or more batterypacks;

determining, by the computing device, that the first reading of the SOHof the third group does not satisfy a SOH threshold; and

sequestering, by the computing device, the third group from powering theend device until a subsequent reading of an SOC of each of the pluralityof battery packs other than the one or more battery packs of the thirdgroup do not satisfy an SOC threshold.

Embodiment #113. The method of Embodiment #109, wherein the receivingthe first reading of the SOC of each of the plurality of battery packsfurther comprises:

identifying, by the computing device, a master battery pack as one ofthe plurality of battery packs; and

receiving, by the computing device and from the master battery pack, thefirst reading of the SOC of each of the plurality of battery packs.

Embodiment #114. The method of Embodiment #109,

wherein the causing the second group to charge the first battery packoccurs via one or more of a converter balancing, a direct connectbalancing, or a staggered balancing.

Embodiment #115. The method of Embodiment #109, further comprising:

receiving, by the computing device, a first reading of a state of health(SOH) of each of the plurality of battery packs, wherein the pluralityof battery packs further comprises a third group of one or more batterypacks;

determining, by the computing device, that the first reading of the SOHof the third group does not satisfy a SOH threshold; and

sequestering, by the computing device, the third group from powering theend device until a subsequent reading of an SOC of each of the pluralityof battery packs other than the one or more battery packs of the thirdgroup do not satisfy an SOC threshold.

Embodiment #116. A device comprising:

a plurality of series-connected battery cells of a battery chemistry;

a first pathway between a power source and the plurality ofseries-connected battery cells, wherein the first pathway is configuredto supply the plurality of series-connected battery cells with currentat a first voltage;

a second pathway between the power source and the plurality ofseries-connected battery cells, wherein the second pathway is configuredto supply the plurality of series-connected battery cells with currentat a second voltage, wherein the second voltage is lower than the firstvoltage; and

a pathway control circuit configured to select, based on states ofcharge (SOC) of battery cells of the plurality of series-connectedbattery cells, between the first pathway and the second pathway,

wherein, based on the battery chemistry, a first voltage across a firstbattery cell having a higher SOC increases faster than a second voltageacross a second battery cell having a lower SOC than the first batterycell.

Embodiment #117. The device of Embodiment #116,

wherein the battery chemistry of the series-connected battery cells isselected from the group of:

lithium iron phosphate (LFP);

lithium nickel manganese cobalt oxide (NMC); and

lithium nickel cobalt aluminum oxides (NCA).

Embodiment #118. The device of Embodiment #116,

wherein the second pathway comprises a buck converter configured toreceive the first voltage and output the second voltage.

Embodiment #119. The device of Embodiment #116, further comprising:

a voltage detector configured to detect a voltage across each cell ofthe plurality of series-connected battery cells, wherein the voltagedetector is configured to determine whether a cell voltage of at leastone cell of the plurality of series-connected battery cells satisfies acell threshold voltage,

wherein the pathway control circuit comprises a pathway switchconfigured to receive a power supply voltage and output the firstvoltage to the first pathway, and

wherein the pathway switch is controlled to connect, based on adetermination by the voltage detector that at least one cell of theplurality of series-connected battery cells is greater than or equal tothe cell threshold voltage, the power supply voltage to the secondpathway.

Embodiment #120. The device of Embodiment #119, further comprising:

a second pathway switch configured to selectively connect one of thefirst pathway or the second pathway to the plurality of series-connectedbattery cells,

wherein the second pathway switch is controlled based on thedetermination by the voltage detector that at least one cell of theplurality of series-connected battery cells greater than or equal to thecell threshold voltage.

Embodiment #121. The device of Embodiment #119,

wherein the voltage detector further comprises one or more comparatorsconfigured to compare a voltage across an individual battery cell with areference voltage, and

wherein the pathway control circuit further comprises acomparator-controlled switch configured to, based on a comparison by oneor more comparators that the voltage of the individual battery cell isgreater than or equal to the reference voltage, control the operation ofthe pathway switch.

Embodiment #122. The device of Embodiment #119, wherein the voltagedetector comprises:

a plurality of individual voltage detectors, wherein each individualvoltage detector is configured to detect a voltage across an individualbattery cell of the plurality of series-connected battery cells.

Embodiment #123. The device of Embodiment #122, wherein each individualvoltage detector comprises:

a comparator configured to compare a reference voltage and the voltageacross the individual battery cell of the plurality of series-connectedbattery cells.

Embodiment #124. The device of claim Embodiment #119, furthercomprising:

one or more selectable connectors configured to selectively connect theone or more voltage detectors to individual battery cells; and

a controller configured to control the one or more selectable connectorsto selectively connect to the individual battery cells.

Embodiment #125. A method comprising:

providing, via a first pathway, power at a first voltage level toseries-connected battery cells;

detecting, across each battery cell of the series-connected batterycells, a cell voltage;

comparing each cell voltage with a reference voltage;

determining, based on the comparison, that at least one cell voltage isgreater than or equal to the threshold voltage;

disconnecting, based on a determination that at least one cell voltageis greater than or equal to the threshold voltage and via at least afirst switch, the first pathway from the series-connected battery cells;

providing, via at least a second switch and via a second pathway, powerat a second voltage level to the series-connected battery cells,

wherein the second voltage level is lower than the first voltage level.

Embodiment #126. The method of Embodiment #125, wherein providing thepower at the second voltage level comprises:

reducing, via a buck converter, the first voltage level to the secondvoltage level.

Embodiment #127. The method of Embodiment #125,

wherein determining the voltage across each cell is performedsimultaneously for each battery cell of the series-connected batterycells.

Embodiment #128. The method of Embodiment #125,

wherein determining the voltage across each cell is performedsequentially across the series-connected battery cells.

Embodiment #129. The method of Embodiment #125, further comprising:

determining, based on the based on the comparison, that all cellvoltages are higher than a second threshold voltage;

providing, based on the determination that all cell voltages are higherthan the second threshold voltage, power at a third voltage level to theseries-connected battery cells.

Embodiment #130. The method of Embodiment #129, wherein providing powerat the third voltage level comprises providing a trickle charge to theseries-connected battery cells.

Embodiment #131. The method of Embodiment #125, further comprising:

determining, based on the based on the comparison, that all cellvoltages are higher than a second threshold voltage;

providing, based on the determination that all cell voltages are higherthan the second threshold voltage, an indication that the battery cellsare charged.

Embodiment #132. The method of Embodiment #125, wherein the determiningthat the at least one cell voltage is greater than or equal to thethreshold voltage further comprises:

determining that other series-connected cells are below a secondthreshold voltage.

Embodiment #133. The method of Embodiment #125, wherein determining thatat least one cell voltage is greater than or equal to the thresholdvoltage further comprises:

determining that the at least one cell's voltage level is increasingfaster than the voltage level of other cells.

Embodiment #134. The method of Embodiment #125,

wherein a determination that that at least one cell voltage is greaterthan or equal to the threshold voltage indicates that the at least onecell's voltage level is increasing faster than the voltage level ofother cells.

Embodiment #135. The method of Embodiment #125,

wherein providing power via the second pathway at the second voltagelevel permits balancing of the series-connected battery cells.

Embodiment #136. A device comprising:

a plurality of battery packs connected in parallel to a power source;

a shut-off switch connected between the plurality of battery packs andthe power source;

a current detector configured to determine whether a current, from thepower source to the plurality of battery packs, is greater than athreshold current;

an over-current protection circuit configured to disconnect, via theshut-off switch and based on the current detector determining that thecurrent is greater than the threshold current, the power source from theplurality of battery packs;

a controller configured to maintain the disconnection, via theover-current protection circuit, of the power source from the pluralityof battery packs after the current drops below the current threshold.

Embodiment #137. The device of Embodiment #136, wherein the currentdetector comprises:

a resistor between the shut-off switch and one of the power source orthe plurality of battery packs, wherein the current flows through theresistor; and

a comparator configured to compare a voltage across the resistor with athreshold voltage,

wherein the over-current protection circuit is further configured todisconnect the power source from the plurality of battery packs based onan output of the comparator.

Embodiment #138. The device of Embodiment #136, wherein the over-currentprotection circuit comprises:

a second switch controlled by the current detector,

wherein a conduction path of the second switch is connected between agate of the shut-off switch and a voltage level,

wherein, based on the current detector turning on the second switch, thesecond switch connects the gate of the shut-off switch to the voltagelevel, and

wherein, based on the gate of the shut-off switch being pulled to thevoltage level, the shut-off switch disconnects the power source from theplurality of battery packs.

Embodiment #139. The device of claim 3,

wherein the voltage level is a low voltage level, and

wherein the shut-off switch is an n-type MOSFET.

Embodiment #140. The device of claim 3,

wherein the voltage level is a high voltage level, and

wherein the shut-off switch is a p-type MOSFET.

Embodiment #141. The device of Embodiment #136, wherein the currentdetector comprises:

battery-pack resistors; and

comparators,

wherein, for each battery pack, a battery pack resistor of thebattery-pack resistors is in series with each battery pack, wherein aportion of the current flows through each resistor; and

wherein, for each battery pack, a comparator of the comparators isconfigured to compare a voltage across a respective battery packresistor with a threshold voltage,

wherein the over-current protection circuit is further configured todisconnect, based on an output of at least one comparator of thecomparators being above a threshold voltage and via the shut-off switch,the power source from all battery packs of the plurality of batterypacks.

Embodiment #142. The device of Embodiment #141,

wherein each battery pack resistor is located between a positive voltagepotential and a respective battery pack.

Embodiment #143. The device of Embodiment #141,

wherein the controller is configured to detect whether at least onecomparator indicates the voltage across the respective battery packresistor is greater than the threshold voltage, and

wherein the controller is configured to, based on the detection of atleast one comparator of the comparators indicating the voltage acrossthe respective battery pack resistor being greater than the thresholdvoltage, maintain the shut-off switch in a state disconnecting the powersource from all battery packs.

Embodiment #144. The device of Embodiment #136, wherein the shut-offswitch is an n-type MOSFET.

Embodiment #145. The device of Embodiment #138, wherein the secondswitch is an n-type MOSFET.

Embodiment #146. A method comprising:

receiving power from power source, the power comprising a voltage andcurrent;

conveying, via a shut-off switch, the power to a plurality of batterypacks arranged in parallel;

determining, via a current detector, whether the current is greater thana current threshold;

based on a determination that the current is greater than the currentthreshold, triggering an over-current protection circuit, wherein thetriggered over-current protection circuit is configured to prevent thepower from being conveyed, via the shut-off switch, to the plurality ofbattery packs; and

a controller configured to maintain the shut-off switch in anon-conveying state after the voltage drop decreases below the thresholdvoltage.

Embodiment #147. The method of Embodiment #146,

wherein the determining via the current detector comprises:

-   -   determining a voltage drop across a resistor, wherein the        current flows through the resistor; and    -   determining whether the voltage drop is greater than a threshold        voltage, wherein the threshold voltage represents the current        threshold multiplied by a resistance value of

the resistor,

the method further comprising:

-   -   based on determining that the voltage drop is greater than the        threshold voltage, controlling the shut-off switch, via an        over-current protection circuit, to prevent the power from being        supplied to all plurality of battery packs; and    -   maintaining, via a controller, a state of the shut-off switch to        prevent the power from being supplied to all of the battery        packs after the voltage drop decreases below the threshold        voltage.        Embodiment #148. The method of Embodiment #146, wherein        controlling the shut-off switch further comprises:

selectively connecting, via a second switch, a gate of the shut-offswitch, wherein a conduction path of the second switch is connectedbetween a gate of the shut-off switch and a voltage level,

wherein, based on the current detector turning on the second switch, thesecond switch connects the gate of the shut-off switch to the voltagelevel, and

wherein, based on the gate of the shut-off switch being pulled to thevoltage level, the shut-off switch disconnects the power source from theplurality of battery packs.

Embodiment #149. The method of Embodiment #148,

wherein the voltage level is a low voltage level, and

wherein the shut-off switch is an n-type MOSFET.

Embodiment #150. The method of Embodiment #148,

wherein the voltage level is a high voltage level, and

wherein the shut-off switch is a p-type MOSFET.

Embodiment #151. The method of Embodiment #146,

wherein the determining via the current detector comprises comparing,for each battery-pack resistor, a voltage drop with a threshold voltage,wherein each battery-pack resistor is in series with a battery pack ofthe plurality of battery packs connected in parallel,

wherein a portion of the current flows through each resistor, and

wherein the triggering the over-current protection circuit furthercomprises disconnecting, based on an output of at least one comparatorof the comparators being above a threshold voltage and via the shut-offswitch, the power source from all battery packs of the plurality ofbattery packs.

Embodiment #152. The method of Embodiment #151,

wherein a controller configured to maintain the shut-off switch in anon-conveying state after the voltage drop, of the at least onecomparator of the comparators being above a threshold voltage, decreasesbelow the threshold voltage.

Embodiment #153. The method of Embodiment #151,

wherein triggering the over-current protection circuit further comprisesincreasing a gate voltage of a switch to permit the switch to pull downa gate of the shut-off switch.

Embodiment #154. The method of Embodiment #153,

wherein a resistor connects the gate of the switch to ground.

Embodiment #155. The method of Embodiment #153,

wherein the gate of the shut-off switch is pulled to a high voltage by apull-up resistor.

Embodiment #156. A battery pack comprising:

one or more battery cells;

a controller;

a first external power terminal;

a second external power terminal;

one or more switches connected in series between the first externalpower terminal and the one or more battery cells;

a buck converter circuit;

a bypass circuit comprising a first bypass terminal connected to thefirst external power terminal, a second bypass terminal connected to thesecond external power terminal, and a gate bypass terminal connected tothe controller;

a first power pathway between the first external power terminal and thesecond external power terminal in which a first voltage difference isprovided across the one or more battery cells;

a second power pathway between the first external power terminal and thesecond external power terminal in which a second voltage difference isprovided across the one or more battery cells, wherein the secondvoltage difference is less than the first voltage difference, andwherein the second power pathway includes the buck converter circuitthat reduces the first voltage difference to the second voltagedifference;

a third power pathway between the first external power terminal and thesecond external power terminal, wherein the third power pathway includesthe bypass circuit,

wherein the controller is configured to selectively enable one of thefirst power pathway, the second power pathway, and the third powerpathway.

Embodiment #157. The battery pack of Embodiment #156,

wherein, based on the controller controlling the bypass circuit toelectrically connect the first external power terminal and the secondexternal power terminal, a voltage difference between the first externalpower terminal and the second external power terminal increases with anincrease in a temperature of the battery pack.

Embodiment #158. The battery pack of Embodiment #156, wherein the bypasscircuit further comprises:

a positive temperature control (PTC) thermistor with a first terminaland a second terminal; and

a switch,

wherein the switch is connected in series with the PTC thermistorbetween the first external power terminal and the second external powerterminal.

Embodiment #159. The battery pack of Embodiment #156, wherein the bypasscircuit further comprises:

a switch connected between a first node and the second external powerterminal, wherein the switch comprises a control terminal;

a resistor connected between the controller and the control terminal.

Embodiment #160. The battery pack of Embodiment #159,

wherein the switch further comprises a first conduction terminal and asecond conduction terminal, and

wherein the bypass circuit further comprises:

a second switch comprising a second conduction terminal and a secondswitch control terminal, wherein the second switch control terminal isconnected to the first node;

a third switch comprising a third conduction terminal and a third switchcontrol terminal, wherein the third switch control terminal is connectedto the first node; and

a diode comprising is connected in series between the second conductionterminal and the third conduction terminal.

Embodiment #161. The battery pack of Embodiment #160, wherein the bypasscircuit further comprises:

a fourth switch comprising a fourth conduction path connected betweenthe first external power terminal and the second external powerterminal, wherein the fourth switch further comprises a fourth controlterminal connected to a terminal of the diode and the second conductionterminal.

Embodiment #162. The battery pack of Embodiment #161, wherein the bypasscircuit further comprises:

a fifth switch comprising a fifth conduction path connected in serieswith the fourth conduction path and one of the first external powerterminal or the second external power terminal.

Embodiment #163. The battery pack of Embodiment #160, wherein the bypasscircuit further comprises:

a second diode, wherein the second diode is connected in series betweena voltage supply and a fourth conduction terminal of the second switch.

Embodiment #164. The battery pack of Embodiment #156, furthercomprising:

an external control terminal electrically coupled to the controller,

wherein the controller is further configured to selectively control thebypass circuit based on commands received via the external controlterminal.

Embodiment #165. The battery pack of Embodiment #156, furthercomprising:

a first pathway/second pathway switch configured to switch between thefirst power pathway and the second power pathway,

wherein the controller is configured to:

-   -   determine a state of charge (SOC) of the one or more battery        cells, and    -   control, based on a determination of the SOC, the first        pathway/second pathway switch and the gate bypass terminal.        Embodiment #166. A method comprising;

connecting, in series, a first battery pack with a second battery pack,wherein the first battery pack has a first high voltage terminal and afirst low voltage terminal, wherein the second battery pack has a secondhigh voltage terminal and a second low voltage terminal, and wherein theconnecting comprises connecting the first low voltage terminal to thesecond high voltage terminal;

determining a state of charge (SOC) of each of the first battery packand the second battery pack;

based on the SOC of the first battery pack being higher than the SOC ofthe second battery pack, controlling a first bypass circuit of the firstbattery pack to electrically connect, via the first bypass circuit, thefirst high voltage terminal with the first low voltage terminal;

comparing the SOC of the second battery pack to a first threshold; and

based on the comparison of the SOC of the second battery pack to thefirst threshold, controlling the second battery pack to charge batterycells of the second battery pack at one of a first voltage level or asecond voltage level, wherein the first voltage level is higher than thesecond voltage level.

Embodiment #167. The method of Embodiment #166, wherein, based on theconnection, via the first bypass circuit, between the first high voltageterminal and the first low voltage terminal, a resistance between thefirst high voltage terminal and the first low voltage terminal changesbased on a resistance of a positive temperature control (PTC) thermistorwithin the first bypass circuit.Embodiment #168. The method of Embodiment #166, further comprising:

based on a determination that the SOC of the second battery pack isbelow the first threshold, charging the battery cells of the secondbattery pack at the first voltage level.

Embodiment #169. The method of Embodiment #168, wherein charging thebattery cells of the second battery pack at the first voltage levelcomprises electrically connecting one or more switches to permit voltageat the second high voltage terminal to charge the battery cells.Embodiment #170. The method of Embodiment #166, further comprising:

based on a determination that the SOC of the second battery pack isabove the first threshold, charging the battery cells of the secondbattery pack at the second voltage level.

Embodiment #171. The method of Embodiment #170, wherein charging thebattery cells of the second battery pack at the second voltage levelcomprises electrically connecting one or more switches to permit voltagefrom the second high voltage terminal to be reduced, via a buckconverter, to charge the battery cells at the second voltage level.Embodiment #172. A battery system comprising:

a plurality of batteries;

a controller;

a plurality of detector circuits configured to detect whether thebatteries are connected in a series configuration or in a secondconfiguration, wherein each detector circuit comprises at least abattery connection to a battery, a detector connection to at least oneother detector circuit, and an output connection to the controller;

wherein, based on whether at least one voltage level of the outputconnections is different from other voltage levels on the outputconnections, the controller is configured to determine whether thebatteries are connected in the series configuration or in the secondconfiguration.

Embodiment #173. The battery system of Embodiment #172,

wherein, based on a first output connector of a first detector circuitbeing a higher voltage than a second output connector of a seconddetector circuit, the controller is configured to determine that theplurality of batteries are in the series configuration.

Embodiment #174. The battery system of Embodiment #172,

wherein, based on a first output connector of a first detector circuitbeing a same voltage as a second output connector of a second detectorcircuit, the controller is configured to determine that the plurality ofbatteries are in the second configuration.

Embodiment #175. The battery system of Embodiment #174,

wherein the second configuration is a parallel configuration.

Embodiment #176. The battery system of Embodiment #174, wherein thecontroller is configured to determine, for the series-type arrangementtype, which battery is first in the series.

Embodiment #177. The battery system of Embodiment #172, wherein eachdetector circuit comprises:

a first diode and a first resistor in series between the batteryconnection and the detector connection.

Embodiment #178. The battery system of Embodiment #177,

wherein a first detector circuit is configured to reduce, based on avoltage of a first detector connection of the first detector circuitbeing lower than a voltage of a second detector connection of a seconddetector circuit, a voltage at a first output connection of the firstdetector circuit.

Embodiment #179. The battery system of Embodiment #177, wherein eachdetector circuit further comprises:

a second resistor connected between a voltage supply and a firstinternal node;

a third resistor connected between the first internal node and groundpotential,

wherein the first internal node is electrically coupled to the detectorconnection, and

wherein as

Embodiment #180. The battery system of Embodiment #179, wherein eachdetector circuit further comprises:

a diode connected between the first internal node and the detectorconnection,

wherein a voltage of the output connection varies with a voltage of thefirst internal node.

Embodiment #181. The battery system of Embodiment #172,

wherein each detector circuit and its respective battery are part of abattery pack.

Embodiment #182. The battery system of Embodiment #172,

wherein each battery is part of a battery pack and each detector circuitis configured to be connected, via each detector circuit batteryconnection to one battery pack.

Embodiment #183. A method comprising:

receiving, at a first battery connector of a first detector circuit, afirst voltage of a first battery;

receiving, at a second battery connector of a second detector circuit, asecond voltage of a second battery;

providing, at a first detector connection of the first detector circuit,a third voltage related to the first voltage;

providing, at a second detector connection of the second detectorcircuit, a fourth voltage related to the second voltage;

outputting, at a first output connection of the first detector circuit,a first output voltage;

outputting, at a second output connection of the second detectorcircuit, a second output voltage;

determining, based on whether the first output voltage and the secondoutput voltage are equal to each other or not equal to each other, anarrangement type between the first battery and the second battery.

Embodiment #184. The method of Embodiment #183,

wherein the determined arrangement type is series-type connection or aparallel-type connection.

Embodiment #185. The method of Embodiment #183,

wherein the controller is configured to determine, for the series-typearrangement type, which battery is first in the series.

Embodiment #186. The method of Embodiment #183, further comprising:

increasing, based on the first voltage of the first battery being lowerthan the second voltage of the second battery, a current flowing from afirst internal node of the first detector circuit to the first battery.

Embodiment #187. The method of Embodiment #186, further comprising:

increasing, based on the increase in current flowing from the firstinternal node of the first detector circuit to the first battery, avoltage drop across a first resistor connected between a power supplyand the first internal node of the first detector circuit.

Embodiment #188. The method of Embodiment #183,

wherein the receiving a first voltage of a first battery occurs beforethe first detector connection is connected to the second detectorconnection.

Embodiment #189. The method of Embodiment #183,

wherein the receiving a first voltage of a first battery occurs afterthe first detector connection is connected to the second detectorconnection.

Embodiment #190. A method comprising:

receiving, by a controller of a master battery pack of a battery system,status information from each battery pack of a plurality of batterypacks of the battery system, wherein the status information comprises afirst state of health (SoH) value corresponding to a condition of afirst battery pack and a second SoH value corresponding to a conditionof a second battery pack, wherein the status information from at leastone of the battery packs is received via a communication channel;

determining, based on the first SoH value, a first virtual current,corresponding to energy discharged from first battery pack;

determining, based on the second SoH value, a second virtual current,corresponding to energy discharged from the second battery pack;

calculating, by a controller of the master battery pack, a systemvirtual output current corresponding to energy discharged from thebattery system to an end device, wherein the calculation corresponds toa sum of the first virtual current provided from the first battery packand the second virtual current provided from the second battery pack;

sending, by the master battery pack via the communication channel, amessage comprising at least the system virtual output current value; and

causing display, at the end device and based on the message received viathe communication channel, of an indication of whether one or more ofthe system virtual output current, the first virtual current, or thesecond virtual current exceeds a threshold.

Embodiment #191. The method of Embodiment #190, wherein the indicationof whether the one of the first virtual current or the second virtualcurrent exceeds a threshold comprises a prediction that one of the firstbattery pack or the second battery pack will fail first.Embodiment #192. The method of Embodiment #190, wherein the indicationof whether the one of the first virtual current or the second virtualcurrent exceeds a threshold comprises an indication that a correspondingbattery pack meets or exceeds a maximum current threshold.Embodiment #193. The method of Embodiment #190, wherein the first SoHvalue of the first battery pack corresponds to a relative health ofbattery cells in the first battery pack, wherein the relative health isbased on one or more of:

internal resistance,

internal impedance;

battery storage capacity,

battery output voltage,

a number of charge-discharge cycles,

a temperature of a battery cell during previous uses,

total energy charged or discharged,

age of a battery cell, or

a combination thereof.

Embodiment #194. The method of Embodiment #190, further comprising:

determining, by the controller of the master battery pack and based onthe first SoH value, a first impedance of the first battery pack basedon the first SoH value;

determining, by the controller of the master battery pack and based onthe second SoH value, a second impedance of the second battery pack; and

calculating, by the controller of the master battery pack, the firstvirtual current value based on the first impedance of the first batterypack; and

calculating, by the controller of the master battery pack, the secondvirtual current value based on the second impedance of the secondbattery pack.

Embodiment #195. The method of Embodiment #190, wherein determining thefirst virtual current able to be provided by the first battery pack andthe second virtual current able to be provided by the second batterypack comprises:

determining, by the controller of the master battery pack, a firstimpedance of the first battery pack based on the first SoH value and asecond impedance of the second battery pack based on the second SoHvalue.

Embodiment #196. The method of Embodiment #194, comprising determining,by the master battery pack, an impedance of each battery pack of theplurality of battery packs from a lookup table.

Embodiment #197. The method of Embodiment #194, comprising calculating,by the master battery pack, an impedance of each battery pack of theplurality of battery packs using an equation.

Embodiment #198. The method of Embodiment #190, wherein the firstbattery pack comprises the master battery pack.

Embodiment #199. The method of Embodiment #190, wherein each batterypack of the plurality of battery packs comprises a controller and abattery management system (BMS) and wherein the method comprises:

determining, periodically by the BMS of the first battery pack, thefirst SoH value; and

determining, periodically by the BMS of the second battery pack, thesecond SoH value.

Embodiment #200. The method of Embodiment #190, comprising:

causing display, at the second battery pack and based on the messagereceived via the communication channel, of an indication that the secondvirtual current exceeds a current threshold

Embodiment #201. The method of Embodiment #190, comprising:

augmenting, based on a comparison of the first virtual current and thesecond virtual current, the message to include one of a first virtualcurrent value or a second virtual current value.

Embodiment #202. The method of Embodiment #190, further comprising:

triggering, by the master pack and based on a comparison of one of thecalculated first virtual current or the calculated second virtualcurrent to the threshold, a preventative action comprising initiating alimp-home mode of operation for the battery system.

Embodiment #203. The method of Embodiment #190, further comprising:

triggering, by the master pack and based on a comparison of one of thecalculated first maximum current or the calculated second maximumcurrent to a threshold, a preventative action comprising disabling acorresponding battery pack.

Embodiment #204. The method of Embodiment #200, further comprising:

enabling a spare battery pack.

Embodiment #205. A battery system comprising:

a plurality of battery packs, each battery pack of the plurality ofbattery packs comprising:

-   -   a controller;    -   a communication interface;    -   a battery management system (BMS); and    -   memory storing instructions that, when executed by the        controller, cause a battery pack of the plurality of battery        packs to:        -   receive, by a controller of a master battery pack of a            battery system, status information from each battery pack of            a plurality of battery packs of the battery system, wherein            the status information comprises a first state of health            (SoH) value corresponding to a condition of a first battery            pack and a second SoH value corresponding to a condition of            a second battery pack, wherein the status information from            at least one of the battery packs is received via a            communication channel;        -   determine, based on the first SoH value, a first virtual            current, corresponding to energy discharged from first            battery pack;        -   determine, based on the second SoH value, a second virtual            current, corresponding to energy discharged from the second            battery pack;        -   calculate, by a controller of the master battery pack, a            system virtual output current corresponding to energy            discharged from the battery system to an end device, wherein            the calculation corresponds to a sum of the first virtual            current provided from the first battery pack and the second            virtual current provided from the second battery pack;        -   send, by the master battery pack via the communication            channel, a message comprising at least the system virtual            output current value; and        -   cause display, at the end device and based on the message            received via the communication channel, of an indication of            whether one or more of the system virtual output current,            the first virtual current, or the second virtual current            exceeds a threshold.            Embodiment #206. The system of Embodiment #205, wherein the            indication of whether the one of the first virtual current            or the second virtual current exceeds a threshold comprises            a prediction that one of the first battery pack or the            second battery pack will fail first.            Embodiment #207. The system of Embodiment #205, wherein the            indication of whether the one of the first virtual current            or the second virtual current exceeds a threshold comprises            an indication that a corresponding battery pack meets or            exceeds a maximum current threshold.            Embodiment #208. The system of Embodiment #205, wherein the            first SoH value of the first battery pack corresponds to a            relative health of battery cells in the first battery pack,            wherein the relative health is based on one or more of:

internal resistance,

internal impedance;

battery storage capacity,

battery output voltage,

a number of charge-discharge cycles,

a temperature of a battery cell during previous uses,

total energy charged or discharged,

age of a battery cell, or

a combination thereof.

Embodiment #209. Computer readable media storing instructions that, whenexecuted by a processor, cause a battery pack of a battery system to:

receive, by a controller of a master battery pack of a battery system,status information from each battery pack of a plurality of batterypacks of the battery system, wherein the status information comprises afirst state of health (SoH) value corresponding to a condition of afirst battery pack and a second SoH value corresponding to a conditionof a second battery pack, wherein the status information from at leastone of the battery packs is received via a communication channel;

determine, based on the first SoH value, a first virtual current,corresponding to energy discharged from first battery pack;

determine, based on the second SoH value, a second virtual current,corresponding to energy discharged from the second battery pack;

calculate, by a controller of the master battery pack, a system virtualoutput current corresponding to energy discharged from the batterysystem to an end device, wherein the calculation corresponds to a sum ofthe first virtual current provided from the first battery pack and thesecond virtual current provided from the second battery pack;

send, by the master battery pack via the communication channel, amessage comprising at least the system virtual output current value; and

cause display, at the end device and based on the message received viathe communication channel, of an indication of whether one or more ofthe system virtual output current, the first virtual current, or thesecond virtual current exceeds a threshold.

In additional aspects, a battery system may comprise one or more batterypacks. Each battery pack includes a battery management system in whichone of the battery packs is flexibly configured as a master (e.g.,primary) battery pack while the other battery packs are configured asslave (e.g., secondary) battery packs.

The battery management systems and methods described herein may beimplemented in industrial and commercial vehicle applications, such asoff-road utility vehicles, hybrid electric vehicles, battery-electricpowered vehicles, burden carrier/tow tractors, forklift/pallet jacks,lawn and garden/outdoor power equipment, large mining equipment,automated guided vehicles, aerial work platforms, and other suchapplications. In addition, the systems and methods described herein maybe implemented in other applications including, but not limited tocordless power tools (e.g., drills, saws, grinders, nail drivers,welders, and the like), aerospace/defense applications, appliances, andother such applications. Furthermore, the systems and methods describedherein may be implemented in other applications including, but notlimited to grid energy storage, solar-generated power storage systems,sustainably generated power storage systems, smart grid systems, telecomand data communication backup systems, uniform power supply (UPS)systems, server applications, and other such applications.

For example, in some industrial and commercial vehicle applications, abattery management system such as disclosed herein may desired to outputa wide range of current—e.g., a high current when initially turning onan engine of the vehicle, however, less current during normal operationof the vehicle. The battery management system and methods may also, insome embodiments, include a limp home mode feature, as disclosed herein,to accommodate a failed battery in a large-format battery pack, such asin an industrial or commercial vehicle application. The batterymanagement systems, including various battery pack configurations andone or more buses (e.g., a CAN bus), may integrated into the industrialand commercial vehicle application.

In another example, in some telecom and/or data communication backupsystems and/or computer server applications, a battery management systemsuch as disclosed herein may provide an alternative to lead acid batteryinstallations that previously dominated these applications because oftheir low cost, straightforward scalability, accessible recyclinginfrastructure, and accessible manufacturers. In some embodiments, thebattery management systems and methods disclosed herein provide highenergy density, high rate of discharge capabilities, and lowself-discharge characteristics that make for desirable integration intotelecom and/or data communication backup systems, uniform power supply(UPS) systems, and/or computer server applications. For example, theaforementioned applications desire longer operational time frames thatare made possible by the battery management system such as disclosedherein, which extend the usable life of batteries in the battery pack byimplementing smart algorithms for charge, discharge, and balancing—e.g.,smart converter balancing, start direct balancing, start staggeredbalancing, and others. In addition, the battery management systems andmethods disclosed herein may be used in cooperation with, in someexamples, technologies such as fuel cells, ultracapacitors, flywheels,and other electrochemical batteries for use in telecom/datacommunications backup applications.

In yet another example, in some grid energy storage systems,solar-generated power storage systems, sustainably generated powerstorage systems, smart grid systems, and/or uniform power supply (UPS)systems, a battery management system such as disclosed herein mayoptimize electricity grids and enable sustainable energy sources, suchas wind and solar power, to be more economical. In one example, thesystem may be used to store solar energy received from photovoltaicpanels and a bi-directional three-phase inverter system may be managed,in some embodiments, using the battery management system disclosedherein. The renewable energy storage system may include a plurality ofbatteries in a battery pack integrated into a rack mount chassis andenclosure. Solar integrators may use the disclosed battery managementsystems and methods with large-format battery chemistries to fill theneeds of growing renewable energy storage requirements. While lead-acid,ultracapacitors, sodium sulfur, vanadium redox, flywheels, compressedair, fuel cells and pumped hydro have been used in solar energy storageapplications, with the disclosed battery management systems and methods,solar integrators may conveniently use Lithium ion for large-formatapplications. In addition, solar integrators may desire ancillaryservices for the power markets that uses micro-pulses of energy tomaintain the proper frequency of the current on the grid—e.g., frequencyregulation, and advanced smart grid functionality such as micro gridoperation, demand response, time shifting, and power dispatch. Lithiumchemistry over previous battery technologies include weight reduction,volume/footprint reduction, longer cycle-life, ability to use a greaterpercent of capacity of lithium battery without shortening rated cyclelife, faster charge times, and lower effective capacity loss at highrates of discharge. In some examples, an inverter and gatewayinteroperability may be coupled to the disclosed battery managementsystems to manage, distribute, and store energy within a smart grid. Insome examples, the smart grid system may be housed in a mobile shippingcontainer that is expandable.

In addition to grid energy storage systems, the battery managementsystems and methods disclosed herein may be integrated with off-gridpower products suitable in consumer, recreational, automotive, maritimeand/or industrial applications. In the automotive sector, auxiliarypower units (APU) may be used for transportation, construction, and/ormaintaining vital infrastructure. Battery APUs provides commercialvehicles with a rugged and dependable off-grid power source. Otheroff-grid power applications include maritime power, remote locationpower, traffic regulation, security surveillance and emergency powergenerators. Moreover, Battery APUs may be used for short and long-haultrucks, construction equipment, off-road transport (e.g., loggingtrucks), and buses. For example, commercial trucks may rely on BatteryAPUs for overnight comfort (e.g., air conditioning/heat/accessory)loads. For several off-grid applications, reliability is a major concernas failure and/or downtime is exceedingly costly

With some embodiments, the term “large-format” encompasses medium-formatbattery embodiments and use cases. For example, medium-scale andlarge-scale applications are embodied by the numerous descriptionsherein.

Although many of the systems and methods described herein referenceLithium ion battery storage chemistry, the disclosure is not so limited.In many instances, a person of ordinary skill in the art will appreciatethat other major chemistries for rechargeable batteries may beappropriated substituted without substantially departing from the spiritof the solution: Lithium-ion (Li-ion), Nickel Cadmium (Ni—Cd),Nickel-Metal Hydride (Ni-MH), Lead-Acid, and other chemistries. Withsome embodiments, the battery management system disclosed herein may beincluded with these technology batteries to provide battery protection,provide improved efficiency, and provide a better user experience thanprevious battery technologies. Variants of the lithium cobalt cathode,such as nickel cobalt aluminum (NCA) and nickel manganese cobalt (NMC),may be desirable in electric vehicles and other applications. Other newcathode chemistries, such as lithium manganese spinel (LMO) and lithiumiron phosphate (LFP), may be used where appropriate. Moreover,large-format battery packs offer lower system integration costs because,inter alia, it enables a reduced number of battery interconnections,further improving the reliability of the battery pack and providing fora much higher value proposition.

Further, combinations of battery packs may comprise battery packssharing a common battery chemistry (e.g., all Li-ion or all Ni—Cd or thelike). Alternatively, combinations of battery packs may comprisedifferent battery chemistries. The battery packs of different batterychemistries may be selected at random or may be selected to provide acollective functionality based on the combination of functions ofbattery chemistries of the disparate battery packs. For example, a firstbattery pack having a first type of battery chemistry (e.g., a chemistrythat is able to provide a high instantaneous current but cannot storesignificant energy) may be combined with a second battery pack having asecond type of battery chemistry (e.g., a chemistry that storessignificant energy but cannot provide high peak current) such that thecombination of battery packs may provide a high initial current from thefirst battery pack and then a sustained, albeit lower, current from thesecond battery pack. Other combinations of aspects of different batterychemistries are possible and considered within the scope of thisdisclosure.

As can be appreciated by one skilled in the art, a computer system withan associated computer-readable medium containing instructions forcontrolling the computer system can be utilized to implement theexemplary embodiments that are disclosed herein. The computer system mayinclude at least one computer such as a microprocessor, digital signalprocessor, and associated peripheral electronic circuitry.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

What is claimed is:
 1. A device comprising: a plurality ofseries-connected battery cells of a battery chemistry; a first pathwaybetween a power source and the plurality of series-connected batterycells, wherein the first pathway is configured to supply the pluralityof series-connected battery cells with current at a first voltage; asecond pathway between the power source and the plurality ofseries-connected battery cells, wherein the second pathway is configuredto supply the plurality of series-connected battery cells with currentat a second voltage, wherein the second voltage is lower than the firstvoltage; and a pathway control circuit configured to select, based onstates of charge (SOC) of battery cells of the plurality ofseries-connected battery cells, between the first pathway and the secondpathway, wherein, based on the battery chemistry, a first voltage acrossa first battery cell having a higher SOC increases faster than a secondvoltage across a second battery cell having a lower SOC than the firstbattery cell.
 2. The device of claim 1, wherein the battery chemistry ofthe series-connected battery cells is selected from the group of:lithium iron phosphate (LFP); lithium nickel manganese cobalt oxide(NMC); and lithium nickel cobalt aluminum oxides (NCA).
 3. The device ofclaim 1, wherein the second pathway comprises a buck converterconfigured to receive the first voltage and output the second voltage.4. The device of claim 1, further comprising: a voltage detectorconfigured to detect a voltage across each cell of the plurality ofseries-connected battery cells, wherein the voltage detector isconfigured to determine whether a cell voltage of at least one cell ofthe plurality of series-connected battery cells satisfies a cellthreshold voltage, wherein the pathway control circuit comprises apathway switch configured to receive a power supply voltage and outputthe first voltage to the first pathway, and wherein the pathway switchis controlled to connect, based on a determination by the voltagedetector that at least one cell of the plurality of series-connectedbattery cells is greater than or equal to the cell threshold voltage,the power supply voltage to the second pathway.
 5. The device of claim4, further comprising: a second pathway switch configured to selectivelyconnect one of the first pathway or the second pathway to the pluralityof series-connected battery cells, wherein the second pathway switch iscontrolled based on the determination by the voltage detector that atleast one cell of the plurality of series-connected battery cellsgreater than or equal to the cell threshold voltage.
 6. The device ofclaim 4, wherein the voltage detector further comprises one or morecomparators configured to compare a voltage across an individual batterycell with a reference voltage, and wherein the pathway control circuitfurther comprises a comparator-controlled switch configured to, based ona comparison by one or more comparators that the voltage of theindividual battery cell is greater than or equal to the referencevoltage, control the operation of the pathway switch.
 7. The device ofclaim 4, wherein the voltage detector comprises: a plurality ofindividual voltage detectors, wherein each individual voltage detectoris configured to detect a voltage across an individual battery cell ofthe plurality of series-connected battery cells.
 8. The device of claim7, wherein each individual voltage detector comprises: a comparatorconfigured to compare a reference voltage and the voltage across theindividual battery cell of the plurality of series-connected batterycells.
 9. The device of claim 4, further comprising: one or moreselectable connectors configured to selectively connect the one or morevoltage detectors to individual battery cells; and a controllerconfigured to control the one or more selectable connectors toselectively connect to the individual battery cells.
 10. A methodcomprising: providing, via a first pathway, power at a first voltagelevel to series-connected battery cells; detecting, across each batterycell of the series-connected battery cells, a cell voltage; comparingeach cell voltage with a reference voltage; determining, based on thecomparison, that at least one cell voltage is greater than or equal tothe threshold voltage; disconnecting, based on a determination that atleast one cell voltage is greater than or equal to the threshold voltageand via at least a first switch, the first pathway from theseries-connected battery cells; providing, via at least a second switchand via a second pathway, power at a second voltage level to theseries-connected battery cells, wherein the second voltage level islower than the first voltage level.
 11. The method of claim 10, whereinproviding the power at the second voltage level comprises: reducing, viaa buck converter, the first voltage level to the second voltage level.12. The method of claim 10, wherein determining the voltage across eachcell is performed simultaneously for each battery cell of theseries-connected battery cells.
 13. The method of claim 10, whereindetermining the voltage across each cell is performed sequentiallyacross the series-connected battery cells.
 14. The method of claim 10,further comprising: determining, based on the based on the comparison,that all cell voltages are higher than a second threshold voltage;providing, based on the determination that all cell voltages are higherthan the second threshold voltage, power at a third voltage level to theseries-connected battery cells.
 15. The method of claim 14, whereinproviding power at the third voltage level comprises providing a tricklecharge to the series-connected battery cells.
 16. The method of claim10, further comprising: determining, based on the based on thecomparison, that all cell voltages are higher than a second thresholdvoltage; providing, based on the determination that all cell voltagesare higher than the second threshold voltage, an indication that thebattery cells are charged.
 17. The method of claim 10, wherein thedetermining that the at least one cell voltage is greater than or equalto the threshold voltage further comprises: determining that otherseries-connected cells are below a second threshold voltage.
 18. Themethod of claim 10, wherein determining that at least one cell voltageis greater than or equal to the threshold voltage further comprises:determining that the at least one cell's voltage level is increasingfaster than the voltage level of other cells.
 19. The method of claim10, wherein a determination that that at least one cell voltage isgreater than or equal to the threshold voltage indicates that the atleast one cell's voltage level is increasing faster than the voltagelevel of other cells.
 20. The method of claim 10, wherein providingpower via the second pathway at the second voltage level permitsbalancing of the series-connected battery cells.